Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Vladimir Barsukov
zGo
Commits
d023bbb5
Commit
d023bbb5
authored
Aug 05, 2025
by
Vladimir Barsukov
Browse files
zchronos
parent
287bee75
Changes
5
Show whitespace changes
Inline
Side-by-side
go.mod
View file @
d023bbb5
...
@@ -3,7 +3,7 @@ module git.barsukov.pro/barsukov/zgo
...
@@ -3,7 +3,7 @@ module git.barsukov.pro/barsukov/zgo
go 1.24
go 1.24
require (
require (
github.com/aws/aws-sdk-go
v1.55.
7
github.com/aws/aws-sdk-go
v1.55.
8
github.com/georgysavva/scany/v2
v2.1.4
github.com/georgysavva/scany/v2
v2.1.4
github.com/gin-gonic/gin
v1.10.1
github.com/gin-gonic/gin
v1.10.1
github.com/go-co-op/gocron
v1.37.0
github.com/go-co-op/gocron
v1.37.0
...
@@ -18,7 +18,7 @@ require (
...
@@ -18,7 +18,7 @@ require (
require (
require (
github.com/bytedance/sonic
v1.14.0 // indirect
github.com/bytedance/sonic
v1.14.0 // indirect
github.com/bytedance/sonic/loader
v0.3.0 // indirect
github.com/bytedance/sonic/loader
v0.3.0 // indirect
github.com/cloudwego/base64x
v0.1.
5
// indirect
github.com/cloudwego/base64x
v0.1.
6
// indirect
github.com/gabriel-vasile/mimetype
v1.4.9 // indirect
github.com/gabriel-vasile/mimetype
v1.4.9 // indirect
github.com/gin-contrib/sse
v1.1.0 // indirect
github.com/gin-contrib/sse
v1.1.0 // indirect
github.com/go-playground/locales
v0.14.1 // indirect
github.com/go-playground/locales
v0.14.1 // indirect
...
...
go.sum
View file @
d023bbb5
github.com/aws/aws-sdk-go
v1.55.
7
h1:
UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE
=
github.com/aws/aws-sdk-go
v1.55.
8
h1:
JRmEUbU52aJQZ2AjX4q4Wu7t4uZjOu71uyNmaWlUkJQ
=
github.com/aws/aws-sdk-go
v1.55.
7
/go.mod h1:
eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU
=
github.com/aws/aws-sdk-go
v1.55.
8
/go.mod h1:
ZkViS9AqA6otK+JBBNH2++sx1sgxrPKcSzPPvQkUtXk
=
github.com/bytedance/sonic
v1.14.0 h1:
/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ=
github.com/bytedance/sonic
v1.14.0 h1:
/OfKt8HFw0kh2rj8N0F6C/qPGRESq0BbaNZgcNXXzQQ=
github.com/bytedance/sonic
v1.14.0/go.mod h1:
WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA=
github.com/bytedance/sonic
v1.14.0/go.mod h1:
WoEbx8WTcFJfzCe0hbmyTGrfjt8PzNEBdxlNUO24NhA=
github.com/bytedance/sonic/loader
v0.1.1/go.mod h1:
ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=
github.com/bytedance/sonic/loader
v0.3.0 h1:
dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA=
github.com/bytedance/sonic/loader
v0.3.0 h1:
dskwH8edlzNMctoruo8FPTJDF3vLtDT0sXZwvZJyqeA=
github.com/bytedance/sonic/loader
v0.3.0/go.mod h1:
N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
github.com/bytedance/sonic/loader
v0.3.0/go.mod h1:
N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI=
github.com/cloudwego/base64x
v0.1.5 h1:
XPciSp1xaq2VCSt6lF0phncD4koWyULpl5bUxbfCyP4=
github.com/cloudwego/base64x
v0.1.6 h1:
t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M=
github.com/cloudwego/base64x
v0.1.5/go.mod h1:
0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w=
github.com/cloudwego/base64x
v0.1.6/go.mod h1:
OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU=
github.com/cloudwego/iasm
v0.2.0/go.mod h1:
8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY=
github.com/cockroachdb/cockroach-go/v2
v2.2.0 h1:
/5znzg5n373N/3ESjHF5SMLxiW4RKB05Ql//KWfeTFs=
github.com/cockroachdb/cockroach-go/v2
v2.2.0 h1:
/5znzg5n373N/3ESjHF5SMLxiW4RKB05Ql//KWfeTFs=
github.com/cockroachdb/cockroach-go/v2
v2.2.0/go.mod h1:
u3MiKYGupPPjkn3ozknpMUpxPaNLTFWAya419/zv6eI=
github.com/cockroachdb/cockroach-go/v2
v2.2.0/go.mod h1:
u3MiKYGupPPjkn3ozknpMUpxPaNLTFWAya419/zv6eI=
github.com/creack/pty
v1.1.9/go.mod h1:
oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/creack/pty
v1.1.9/go.mod h1:
oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
...
@@ -56,10 +54,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw
...
@@ -56,10 +54,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw
github.com/jmespath/go-jmespath/internal/testify
v1.5.1/go.mod h1:
L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
github.com/jmespath/go-jmespath/internal/testify
v1.5.1/go.mod h1:
L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
github.com/json-iterator/go
v1.1.12 h1:
PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go
v1.1.12 h1:
PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go
v1.1.12/go.mod h1:
e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/json-iterator/go
v1.1.12/go.mod h1:
e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/klauspost/cpuid/v2
v2.0.9/go.mod h1:
FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2
v2.3.0 h1:
S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2
v2.3.0 h1:
S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y=
github.com/klauspost/cpuid/v2
v2.3.0/go.mod h1:
hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/klauspost/cpuid/v2
v2.3.0/go.mod h1:
hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0=
github.com/knz/go-libedit
v1.10.1/go.mod h1:
MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M=
github.com/kr/pretty
v0.1.0/go.mod h1:
dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty
v0.1.0/go.mod h1:
dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty
v0.2.1/go.mod h1:
ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty
v0.2.1/go.mod h1:
ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty
v0.3.0 h1:
WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
github.com/kr/pretty
v0.3.0 h1:
WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
...
@@ -140,4 +136,3 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
...
@@ -140,4 +136,3 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3
v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3
v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3
v3.0.1 h1:
fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3
v3.0.1 h1:
fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3
v3.0.1/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3
v3.0.1/go.mod h1:
K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
nullprogram.com/x/optparse
v1.0.0/go.mod h1:
KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50=
zchronos/zchronos.go
0 → 100644
View file @
d023bbb5
package
zchronos
import
(
"fmt"
"log"
"time"
)
type
ZChronos
struct
{
Prefix
string
StartTime
time
.
Time
TruncateDur
time
.
Duration
}
func
New
(
prefix
string
,
dur
time
.
Duration
)
*
ZChronos
{
return
&
ZChronos
{
Prefix
:
prefix
,
StartTime
:
time
.
Now
(),
TruncateDur
:
dur
,
}
}
func
Default
(
prefix
string
)
*
ZChronos
{
return
New
(
prefix
,
time
.
Millisecond
*
10
)
}
func
DefaultMillis
(
prefix
string
)
*
ZChronos
{
return
New
(
prefix
,
time
.
Millisecond
)
}
func
DefaultSecond
(
prefix
string
)
*
ZChronos
{
return
New
(
prefix
,
time
.
Second
)
}
func
(
z
*
ZChronos
)
CopyWithReset
()
*
ZChronos
{
return
New
(
z
.
Prefix
,
z
.
TruncateDur
)
}
func
(
z
*
ZChronos
)
Printf
(
format
string
,
v
...
any
)
{
log
.
Printf
(
"%v: %v; %v"
,
z
.
Prefix
,
fmt
.
Sprintf
(
format
,
v
...
),
time
.
Since
(
z
.
StartTime
)
.
Truncate
(
z
.
TruncateDur
))
}
func
(
z
*
ZChronos
)
Errf
(
err
error
,
format
string
,
v
...
any
)
{
log
.
Printf
(
"%vErr: %v; %v"
,
z
.
Prefix
,
fmt
.
Sprintf
(
format
,
v
...
),
err
)
}
func
(
z
*
ZChronos
)
Err
(
err
error
)
{
log
.
Printf
(
"%vErr: %v"
,
z
.
Prefix
,
err
)
}
func
(
z
*
ZChronos
)
Finish
()
{
log
.
Println
(
z
.
FinishStr
())
}
func
(
z
*
ZChronos
)
FinishStr
()
string
{
return
fmt
.
Sprintf
(
"%v: finish at %v"
,
z
.
Prefix
,
time
.
Since
(
z
.
StartTime
)
.
Truncate
(
z
.
TruncateDur
))
}
func
(
z
*
ZChronos
)
Since
()
time
.
Duration
{
return
time
.
Since
(
z
.
StartTime
)
.
Truncate
(
z
.
TruncateDur
)
}
zgo.go
View file @
d023bbb5
...
@@ -4,6 +4,7 @@ import (
...
@@ -4,6 +4,7 @@ import (
_
"git.barsukov.pro/barsukov/zgo/zatomic"
_
"git.barsukov.pro/barsukov/zgo/zatomic"
_
"git.barsukov.pro/barsukov/zgo/zbytes"
_
"git.barsukov.pro/barsukov/zgo/zbytes"
_
"git.barsukov.pro/barsukov/zgo/zcache"
_
"git.barsukov.pro/barsukov/zgo/zcache"
_
"git.barsukov.pro/barsukov/zgo/zchronos"
_
"git.barsukov.pro/barsukov/zgo/zcron"
_
"git.barsukov.pro/barsukov/zgo/zcron"
_
"git.barsukov.pro/barsukov/zgo/zdb"
_
"git.barsukov.pro/barsukov/zgo/zdb"
_
"git.barsukov.pro/barsukov/zgo/zdebug"
_
"git.barsukov.pro/barsukov/zgo/zdebug"
...
...
zsem/zsem.go
View file @
d023bbb5
...
@@ -27,10 +27,15 @@ func (s *ZSem) AcquireN(n int) {
...
@@ -27,10 +27,15 @@ func (s *ZSem) AcquireN(n int) {
func
(
s
*
ZSem
)
Acquire
()
{
func
(
s
*
ZSem
)
Acquire
()
{
s
.
AcquireN
(
1
)
s
.
AcquireN
(
1
)
}
}
func
(
s
*
ZSem
)
AcquireErr
()
error
{
func
(
s
*
ZSem
)
AcquireErr
()
error
{
return
s
.
AcquireNErr
(
1
)
return
s
.
AcquireNErr
(
1
)
}
}
func
(
s
*
ZSem
)
AcquireAll
()
{
s
.
AcquireN
(
s
.
qty
)
}
func
(
s
*
ZSem
)
Release
()
{
func
(
s
*
ZSem
)
Release
()
{
s
.
Sem
.
Release
(
1
)
s
.
Sem
.
Release
(
1
)
}
}
...
@@ -39,8 +44,13 @@ func (s *ZSem) ReleaseN(n int) {
...
@@ -39,8 +44,13 @@ func (s *ZSem) ReleaseN(n int) {
s
.
Sem
.
Release
(
int64
(
n
))
s
.
Sem
.
Release
(
int64
(
n
))
}
}
func
(
s
*
ZSem
)
ReleaseAll
()
{
s
.
ReleaseN
(
s
.
qty
)
}
func
(
s
*
ZSem
)
Wait
()
{
func
(
s
*
ZSem
)
Wait
()
{
s
.
AcquireN
(
s
.
qty
)
s
.
AcquireAll
()
s
.
ReleaseAll
()
}
}
func
New
(
n
int
)
*
ZSem
{
func
New
(
n
int
)
*
ZSem
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment