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
421dc584ff
v0.18.4
2021-08-17 17:12:33 -07:00
Ken Hibino
c197902dc0
v0.18.3
2021-08-09 08:59:35 -07:00
Ken Hibino
e6355bf3f5
Use approximate memory usage for QueueInfo
2021-08-09 08:58:44 -07:00
Ken Hibino
684a7e0c98
v0.18.2
2021-07-15 06:56:53 -07:00
Ken Hibino
46b23d6495
Allow upper case characters in queue name
2021-07-15 06:55:47 -07:00
Ken Hibino
c0ae62499f
v0.18.1
2021-07-04 06:39:54 -07:00
Ken Hibino
d02b722d8a
v0.18.0
2021-06-29 16:36:52 -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
a0df047f71
Use md5 to generate checksum for unique key
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
62168b8d0d
Add LastFailedAt field to TaskMessage
2021-06-29 16:34:21 -07:00
Ken Hibino
456edb6b71
Replace RunTaskByKey with RunTask in Inspector
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
0bf767cf21
Add TaskState type to base package
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
bcfeff38ed
Update errors package with detailed comments
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
807624e7dd
Create internal errors package
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
1db516c53c
Add a list of canonical errors in base package
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
2516c4baba
v0.17.2
2021-06-06 06:51:30 -07:00
Ken Hibino
ebe482a65c
Free uniqueness lock when task is deleted
2021-06-06 06:48:59 -07:00
Ken Hibino
32d3f329b9
v0.17.1
2021-04-04 12:51:00 -07:00
Ken Hibino
544c301a8b
Fix bug in RDB.memoryUsage
2021-04-04 12:49:19 -07:00
Ken Hibino
8b997d2fab
v0.17.0
2021-03-24 16:51:59 -07:00
Ken Hibino
aaa3f1d4fd
v0.16.1
2021-03-20 06:27:03 -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
6a9d9fd717
v0.16.0
2021-03-10 20:39:46 -08:00
Ken Hibino
f618f5b1f5
Add benchmark tests for rdb package
2021-03-07 16:27:14 -08:00
Ken Hibino
bc77f6fe14
v0.15.0
2021-01-31 06:11:17 -08:00
Ken Hibino
e13122723a
Move all inspector related code to subpackage inspeq
2021-01-31 06:09:40 -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
2884044e75
v0.14.1
2021-01-19 06:22:54 -08:00
Ken Hibino
42c7ac0746
v0.14.0
2021-01-14 06:49:36 -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
f9c0673116
Add SchedulerEntries method 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
942345ee80
v0.13.0
2020-10-13 06:33:47 -07:00
Ken Hibino
96b2318300
Add EnqueueErrorHandler option to SchedulerOpts
2020-10-13 06:31:47 -07:00
Ken Hibino
8312515e64
Update Option interface
...
- Added `String()`, `Type()`, and `Value()` methods to the interface to
aid with debugging and error handling.
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
572eb338d5
Fix flaky ProcessorRetry test
2020-09-12 12:59:03 -07:00
Ken Hibino
27f4027447
Add RedisClusterClientOpt to connect to 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
96f23d88cd
Add more processor tests
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
aa2676bb57
Update Broker interface
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
Ken Hibino
dbf140a767
Update all list methods in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
5f82b4b365
Update HistoricalStats method in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
44a3d177f0
Update Pause and Unpause methods in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
24b13bd865
Update CurrentStats method in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
d25090c669
Add AllQueues method to RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
b5caefd663
Remove stale benchmark test
2020-09-12 12:59:03 -07:00
Ken Hibino
becd26479b
Update WriteServerState and ClearServerState in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
4b81b91d3e
Minor fix
2020-09-12 12:59:03 -07:00
Ken Hibino
a873d488ee
Update ListDeadlineExceeded in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
650d7fdbe9
Update CheckAndEnqueue method in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
f6d504939e
Update Requeue method in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
74f08795f8
Update Kill method in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
35b2b1782e
Update Retry method in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
f63dcce0c0
Update Done method in RDB
2020-09-12 12:59:03 -07:00
Ken Hibino
565f86ee4f
Update Dequeue command in rdb
2020-09-12 12:59:03 -07:00
Ken Hibino
94aa878060
Update Enqueue and Schedule commands in rdb
2020-09-12 12:59:03 -07:00
Ken Hibino
50b6034bf9
Move unique key generator function to base
2020-09-12 12:59:03 -07:00
Ken Hibino
154113d0d0
Update base package to generate redis keys with hashtag
2020-09-12 12:59:03 -07:00
Ken Hibino
a913e6d73f
Add healthchecker to check broker connection
2020-07-28 22:45:57 -07:00
Ken Hibino
92d77bbc6e
Minor comment fix
2020-07-28 22:45:57 -07:00
Ken Hibino
a28f61f313
Add Inspector type
2020-07-28 22:45:57 -07:00
Ken Hibino
8b60e6a268
Replace github.com/rs/xid with github.com/google/uuid
2020-07-06 05:48:31 -07:00
Ken Hibino
486dcd799b
Add version command to CLI
2020-07-06 05:48:31 -07:00
Ken Hibino
199bf4d66a
Minor code cleanup
2020-07-06 05:48:31 -07:00
Ken Hibino
7e942ec241
Use int64 type for Timeout and Deadline in TaskMessage
2020-07-06 05:48:31 -07:00
Ken Hibino
feee87adda
Add recoverer
2020-07-06 05:48:31 -07:00
Ken Hibino
7657f560ec
Add RDB.ListDeadlineExceeded
2020-07-06 05:48:31 -07:00
Ken Hibino
7c7de0d8e0
Fix processor
2020-07-06 05:48:31 -07:00
Ken Hibino
4e8ac151ae
Update processor to adapt for deadlines set change
...
- Processor dequeues tasks only when it's available to process
- Processor retries a task when its context's Done channel is closed
2020-07-06 05:48:31 -07:00
Ken Hibino
08b71672aa
Update RDB.Requeue to remove message from deadlines set
2020-07-06 05:48:31 -07:00
Ken Hibino
92af00f9fd
Update RDB.Dequeue to return deadline as time.Time
2020-07-06 05:48:31 -07:00
Ken Hibino
113451ce6a
Update RDB.Kill to remove message from deadlines set
2020-07-06 05:48:31 -07:00
Ken Hibino
9cd9f3d6b4
Update RDB.Retry to remove message from deadlines set
2020-07-06 05:48:31 -07:00
Ken Hibino
7b9119c703
Update RDB.Done to remove message from deadlines set
2020-07-06 05:48:31 -07:00
Ken Hibino
9b05dea394
Update RDB.Dequeue to return message and deadline
2020-07-06 05:48:31 -07:00
Ken Hibino
6cc5bafaba
Add task message to deadlines set on dequeue
...
Updated dequeueCmd to decode the message and compute its deadline and add
the message to the Deadline set.
2020-07-06 05:48:31 -07:00
Ken Hibino
0527b93432
Change TaskMessage Timeout and Deadline to int
...
* This change breaks existing tasks in Redis
2020-07-06 05:48:31 -07:00
Ken Hibino
5dddc35d7c
Add redis key for deadlines in base package
2020-07-06 05:48:31 -07:00
Ken Hibino
7f30fa2bb6
Fix requeue logic in processor
2020-06-13 06:22:32 -07:00
Ken Hibino
a2abeedaa0
Fix JSON number ovewflow issue
2020-06-12 06:29:36 -07:00
Ken Hibino
06c4a1c7f8
Limit the number of tasks moved by CheckAndEnqueue to prevent a long
...
running script
2020-06-08 06:06:18 -07:00
Ken Hibino
4e800a7f68
Update stats command to show queue paused status
2020-06-08 06:06:18 -07:00
Ken Hibino
363cfedb49
Update Dequeue operation to skip paused queues
2020-06-08 06:06:18 -07:00
Ken Hibino
4595bd41c3
Add Pause and Unpause methods to rdb
2020-06-08 06:06:18 -07:00
Ken Hibino
a38f628f3b
Refactor server state management
2020-05-31 06:41:19 -07:00