【发布时间】:2017-04-26 13:58:56
【问题描述】:
如果我不太了解长生不老药,请原谅我,因为我是新手...
我使用quantum-elixir 作为 cron api 来动态创建 cron 作业。当有人发布到路由时,我将 cron 作业详细信息保存到我的 Ecto Repo 中,然后同时使用 Quantum.add_job 创建一个量子作业。
在开发中,当我关闭服务器并重新启动它时,我必须重新添加我所有的 cron 作业,因为它们无法通过重新启动而存活。所以这让我想到,如果我的应用程序崩溃,那会让我失去所有的 cron 工作。 (我正在考虑我在 Google 计算引擎上托管应用程序并且出于某种原因需要对计算实例进行重置,即在盒子上进行升级等的场景。)
所以我想知道在保留这些 cron 作业的同时重启我的应用程序的适当方法是什么?
现在我有以下内容:
worker(Task,[MyApp.RebootTask, :reboot, []], restart: :transient)
在我的应用程序模块的start 函数中。
这是正确的方法吗?我还需要考虑哪些其他因素?
非常感谢任何指导
【问题讨论】:
标签: cron elixir erlang-supervisor gen-server