ruby 可靠的持久化sidekiq任务

ig9co6j1  于 2023-08-04  发布在  Ruby
关注(0)|答案(2)|浏览(96)

我正在开发一个ruby应用程序,可以创建todos和meetings。
会有提醒,是发送出尊重每一个会议或待办事项,因为你会想象。
我们已经在使用sidekiq了,如果能用sidekiq在x天/小时内创建预定的作业,那就太好了。
我担心的是,如果redis重新启动,我们将失去工作。
我写的假设,如果redis重新启动,我们失去了工作,如果是这样,有什么可以做的呢?
如果没有sidekiq,我还能用什么?

42fyovps

42fyovps1#

有几种方法可以做到这一点,只要通过链接http://redis.io/topics/persistenceSnapshotting是一种对磁盘上的数据集进行快照的技术。

9cbw7uwe

9cbw7uwe2#

由于Sidekiq构建在Redis之上,因此您可以设置redis以使用--save标志来快照数据。

docker run --name some-redis -d redis redis-server --save 60 1 --loglevel warning

字符串
在本例中,如果至少执行了**1 write操作,则--save 60 1将每60 seconds**保存一次数据库快照。如果您不经常重新启动redis示例,那么这对于许多用例来说可能已经足够好了。有关redis持久性的所有详细信息,请参阅:
https://redis.io/docs/management/persistence/
如果您知道有一个部署作业要重新启动redis,例如,要加载新内核,您可以运行:redis-cli SAVE && reboot在重新启动之前将内存转储到磁盘(因此不必担心等待60秒计时器耗尽)。
也就是说,对于你关于会议通知的特定例子,我可能会使用mysql加莱拉复制和cron或redis作业来扫描数据库,寻找准备好发送电子邮件的笔记,而不是依赖于redis,它可能会定期重新启动,除非你的用户对每一个伟大的一次,电子邮件不显示,否则可以发送。

相关问题