4 ms·
> What exactly is fragile about this approach? We've supported scheduled tasks in TaskTiger (https://github.com/closeio/tasktiger https://github.com/closeio/tas
by pselbert 7y ago
> What exactly is fragile about this approach? We've supported scheduled tasks in TaskTiger (https://github.com/closeio/tasktiger https://github.com/closeio/tasktiger) via Redis's sorted sets and haven't had any issues.
Using sorted sets for scheduled tasks isn't the fragile part, gluing it all together to prevent losing jobs by shifting into backup lists (or hashes) is the fragile part in my experience.
- notyourday 7y agoeval + multi-exec solves that as the issue
- pselbert 7y agoSure, you can glue things together with lua. Here is a script that handles descheduling from a sorted set: https://github.com/sorentwo/kiq/blob/master/priv/scripts/deschedule.lua https://github.com/sorentwo/kiq/blob/master/priv/scripts/des... That definitely does the job. My point is that it is much more complex than a select/update clause in SQL.
- wojcikstefan 7y agoYep, TaskTiger also uses Lua quite extensively ([0]) to ensure atomicity when moving tasks between various stages of processing (queued, active, scheduled, errored). [0] https://github.com/closeio/tasktiger/blob/master/tasktiger/redis_scripts.py https://github.com/closeio/tasktiger/blob/master/tasktiger/r...