ashang
3f4f0c1daa
Use explicit types for limit constants
2022-03-29 06:30:10 -07:00
Ken Hibino
7e5efb0e30
Drop GT option from RDB.ExtendLease
...
GT option in ZAdd is supported for redis v6.2.0 or above.
This Change fixes redis version compatibility (currently v4.0+)
2022-02-20 06:20:38 -08:00
Ken Hibino
d4006894ad
Remove base.DeadlinesKey
2022-02-19 06:15:44 -08:00
Ken Hibino
59927509d8
Remove timeout and deadline fields under task key
2022-02-19 06:15:44 -08:00
Ken Hibino
dfae8638e1
Update RDB methods to work with lease
2022-02-19 06:15:44 -08:00
Ken Hibino
87dc392c7f
Add RDB.ExtendLease method
2022-02-19 06:15:44 -08:00
Ken Hibino
bc2f1986d7
Update ListDeadlineExceeded to ListLeaseExpired
2022-02-19 06:15:44 -08:00
Ken Hibino
b8cb579407
Update RDB methods to use lease instead of deadlines set
2022-02-19 06:15:44 -08:00
Ken Hibino
d865d89900
Update RDB.Dequeue to insert task ID to lease set
2022-02-19 06:15:44 -08:00
Ken Hibino
aa26f3819e
Fix flaky tests
2022-01-05 09:07:42 -08:00
Ken Hibino
8dfabfccb3
Fix build
2021-12-19 07:06:37 -08:00
Ken Hibino
1ddb2f7bce
Use math.MaxInt64 instead of custom const
2021-12-19 06:58:12 -08:00
Ken Hibino
82d18e3d91
Record total tasks processed/failed
2021-12-16 16:53:02 -08:00
Ken Hibino
157e97e72e
Update changelog
2021-12-11 10:29:43 -08:00
Ken Hibino
22e6c9d297
Delete "pending_since" under task-key when state changes to active
2021-12-11 10:29:43 -08:00
Ken Hibino
99a6750656
Add Latency field to QueueInfo
2021-12-11 10:29:43 -08:00
Ken Hibino
e7c1c3ad6f
Use clock in RDB
2021-12-11 10:29:43 -08:00
Ken Hibino
6e7106c8f2
Record time when task moved to pending state
2021-12-11 10:29:43 -08:00
Ken Hibino
9f2c321e98
Add EnqueueContext method to Client
2021-11-15 16:34:26 -08:00
Ken Hibino
f4ddac4dcc
Introduce Task Results
...
* Added Retention Option to specify retention TTL for tasks
* Added ResultWriter as a client interface to write result data for the associated task
2021-11-06 15:18:42 -07:00
Ken Hibino
4638405cbd
Fix flaky test
2021-11-06 15:18:42 -07:00
Ken Hibino
dbdd9c6d5f
Update RDB Enqueue and Schedule methods to check for task ID conflict
2021-11-06 15:18:42 -07:00
Ken Hibino
2261c7c9a0
Change TaskMessage.ID type from uuid.UUID to string
2021-11-06 15:18:42 -07:00
Jason White
b3ef9e91a9
Upgrade go-redis/redis to version 8
2021-09-02 05:56:02 -07:00
Ken Hibino
f0db219f6a
Add IsFailure to Config
...
With this IsFailure config, users can provide a predicate function to
determine whether the error returned from Handler counts as a failure.
2021-09-01 06:00:54 -07:00
Ken Hibino
e6355bf3f5
Use approximate memory usage for QueueInfo
2021-08-09 08:58:44 -07:00
Ken Hibino
99c7ebeef2
Add migration command in CLI
2021-06-29 16:34:21 -07:00
Ken Hibino
e01c6379c8
Fix lua script for redis-cluster mode
2021-06-29 16:34:21 -07:00
Ken Hibino
68dd6d9a9d
(fix): Clear unique lock when task is deleted via Inspector
2021-06-29 16:34:21 -07:00
Ken Hibino
6cce31a134
Fix recoverer test
2021-06-29 16:34:21 -07:00
Ken Hibino
68839dc9d3
Fix lua scripts for redis cluster
2021-06-29 16:34:21 -07:00
Ken Hibino
8922d2423a
Define RDB.GetTaskInfo
2021-06-29 16:34:21 -07:00
Ken Hibino
87264b66f3
Record last_failed_at time on Retry or Archive event
2021-06-29 16:34:21 -07:00
Ken Hibino
b9c2572203
Refactor redis keys and store messages in protobuf
...
Changes:
- Task messages are stored under "asynq:{<qname>}:t:<task_id>" key in redis, value is a HASH type and message are stored under "msg" key in the hash. The hash also stores "deadline", "timeout".
- Redis LIST and ZSET stores task message IDs
- Task messages are serialized using protocol buffer
2021-06-29 16:34:21 -07:00
Ken Hibino
4af65d5fa5
Update RDB methods with new errors package
2021-06-29 16:34:21 -07:00
Ken Hibino
a19ad19382
Update RDB.Dequeue with new errors package
2021-06-29 16:34:21 -07:00
Ken Hibino
8117ce8972
Minor fixes
2021-06-29 16:34:21 -07:00
Ken Hibino
d98ecdebb4
Update RDB.EnqueueUnique and RDB.ScheduleUnique with specific errors
2021-06-29 16:34:21 -07:00
Ken Hibino
ffe9aa74b3
Add errors.RedisCommandError type
2021-06-29 16:34:21 -07:00
Ken Hibino
d2d4029aba
Update RDB.CurrentStats and RDB.HistoricalStats with specific errors
2021-06-29 16:34:21 -07:00
Ken Hibino
76bd865ebc
Update RDB.RemoveQueue with specific error types
2021-06-29 16:34:21 -07:00
Ken Hibino
136d1c9ea9
Update rdb.List* methods with specific errors
2021-06-29 16:34:21 -07:00
Ken Hibino
52e04355d3
Return QueueNotFoundError from DeleteAll* methods
2021-06-29 16:34:21 -07:00
Ken Hibino
cde3e57c6c
Update RDB.RunAll* methods with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
dd66acef1b
Return QueueNotFoundError from ArchiveAll* methods
2021-06-29 16:34:21 -07:00
Ken Hibino
30a3d9641a
Update tests for RDB.DeleteTask and RDB.ArchiveTask
2021-06-29 16:34:21 -07:00
Ken Hibino
961582cba6
Update RDB.RunTask with more specific errors
2021-06-29 16:34:21 -07:00
Ken Hibino
430dbb298e
Update RDB.DeleteTask with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
675826be5f
Update RDB.ArchiveAll methods with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
62f4e46b73
Update RDB.ArchiveAllPendingTasks with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
a500f8a534
Reorganize test for RDB.ArchiveTask
2021-06-29 16:34:21 -07:00
Ken Hibino
12a90f6a8d
Update RDB.ArchiveTask with custom errors
2021-06-29 16:34:21 -07:00
Ken Hibino
4d65024bd7
Update rdb.ArchiveTask with more specific error types
2021-06-29 16:34:21 -07:00
Ken Hibino
76486b5cb4
Rename error types
2021-06-29 16:34:21 -07:00
Ken Hibino
cb5bdf245c
Update RDB.ArchiveTask with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
267493ccef
Update RDB.RunTask with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
5d7f1b6a80
Update RDB.Requeue with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
77ded502ab
Update RDB.Retry, RDB.Archive with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
f2284be43d
Update RDB.Dequeue with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
3cadab55cb
Update RDB.ForwardIfReady with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
298a420f9f
Update RDB.ScheduleUnique with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
b1d717c842
Update RDB.Schedule with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
56e5762eea
Update RDB.EnqueueUnique with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
5ec41e388b
Update RDB.Enqueue with task state
2021-06-29 16:34:21 -07:00
Ken Hibino
9c95c41651
Change Server API
...
* Rename ServerStatus to ServerState internally
* Rename terminate to shutdown internally
* Update Scheduler API to match Server API
2021-06-29 16:34:21 -07:00
Ken Hibino
476812475e
Change payload to byte slice
2021-06-29 16:34:21 -07:00
Ken Hibino
7af3981929
Refactor redis keys and store messages in protobuf
...
Changes:
- Task messages are stored under "asynq:{<qname>}:t:<task_id>" key in redis, value is a HASH type and message are stored under "msg" key in the hash. The hash also stores "deadline", "timeout".
- Redis LIST and ZSET stores task message IDs
- Task messages are serialized using protocol buffer
2021-06-29 16:34:21 -07:00
Ken Hibino
ebe482a65c
Free uniqueness lock when task is deleted
2021-06-06 06:48:59 -07:00
Ken Hibino
544c301a8b
Fix bug in RDB.memoryUsage
2021-04-04 12:49:19 -07:00
disc
4722ca2d3d
Replaced blocking KEYS XXX:*
command to non-blocking SCAN XXX:*
...
More details: https://redis.io/commands/KEYS
2021-03-20 06:24:08 -07:00
Ken Hibino
f618f5b1f5
Add benchmark tests for rdb package
2021-03-07 16:27:14 -08:00
Ken Hibino
eba7c4e085
Record deadline within WorkerInfo
2021-01-31 06:09:40 -08:00
Ken Hibino
afde6a7266
Add MemoryUsage field to QueueStats
2021-01-31 06:09:40 -08:00
Ken Hibino
6529a1e0b1
Fix scheduler
...
* Delete scheduler history data when scheduler stops
* Fix history trimming bug
2021-01-31 06:09:40 -08:00
Ken Hibino
c9a6ab8ae1
Support delete and archive actions on PendingTask
...
* Add `DeleteAllPendingTasks`, `ArchiveAllPendingTasks` to `Inspector`
* `DeleteTaskByKey` and `ArchiveTaskByKey` now supports deleting/archiving PendingTask
* Updated `asynq task` command with support for deleting/archiving pending tasks
2021-01-31 06:09:40 -08:00
Ken Hibino
00a25ca570
Rename DeadTask to ArchivedTask and action "kill" to "archive"
2021-01-14 06:43:44 -08:00
Ken Hibino
c5100a9c23
Add a method to list running servers to Inspector
2021-01-14 06:43:44 -08:00
Ken Hibino
196d66f221
Fix ListSchedulerEnqueueEvents to list recent events first
2021-01-14 06:43:44 -08:00
Ken Hibino
f4dd8fe962
Add ListScheduelerEnqueueEvents to Inspector
2021-01-14 06:43:44 -08:00
Ken Hibino
e9239260ae
Add DeleteQueue method to Inspector
...
- Added ErrQueueNotFound and ErrQueueNotEmpty type to indicate the kind
of an error returned from the method.
2021-01-14 06:43:44 -08:00
MinJae Kwon
c4dc993241
fix: resolve go vet lint
2020-12-20 06:09:51 -08:00
Ken Hibino
96b2318300
Add EnqueueErrorHandler option to SchedulerOpts
2020-10-13 06:31:47 -07:00
Ken Hibino
50e7f38365
Add Scheduler
...
- Renamed previously called scheduler to forwarder to resolve name
conflicts
2020-10-13 06:31:47 -07:00
Ken Hibino
c43fb21a0a
Minor test updates
2020-09-12 12:59:03 -07:00
Ken Hibino
69d7ec725a
Close redis client after each test run
2020-09-12 12:59:03 -07:00
Ken Hibino
c26b7469bd
Display cluster info in stats command when --cluster flag is passed
2020-09-12 12:59:03 -07:00
Ken Hibino
29e542e591
Rename Enqueue methods in Inspector to Run
2020-09-12 12:59:03 -07:00
Ken Hibino
a891ce5568
Rename InProgress to Active
2020-09-12 12:59:03 -07:00
Ken Hibino
c8c47fcbf0
Rename Enqueued to Pending
2020-09-12 12:59:03 -07:00
Ken Hibino
8076b5ae50
Use different redis db number for rdb package tests
2020-09-12 12:59:03 -07:00
Ken Hibino
a88325cb96
Add ClusterNodes and ClusterKeySlot in Inspector
2020-09-12 12:59:03 -07:00
Ken Hibino
6b96459881
Add test flags to run tests using redis cluster
2020-09-12 12:59:03 -07:00
Ken Hibino
ee1afd12f5
Fix done lua script
...
If UniqueKey is an empty string, do not provide the key to Lua script
because that will cause CROSSSLOT error in redis cluster (since it
doesn't have any hash tag).
2020-09-12 12:59:03 -07:00
Ken Hibino
3ac548e97c
Fix dequeue Lua script to use a single hash tag
2020-09-12 12:59:03 -07:00
Ken Hibino
f38f94b947
Restructure CLI commands with subcommands
2020-09-12 12:59:03 -07:00
Ken Hibino
118ef27bf2
Update RemoveQueue in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
2f226dfb84
Update ListServers and ListWorkers methods in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
f59de9ac56
Update all delete methods in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
996a6c0ead
Update all kill methods in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
47e9ba4eba
Update enqueue methods in RDB
2020-09-12 12:59:03 -07:00