我需要为用户实现自定义计划程序。
示例场景: 用户将确切的作业设置为在星期一的12:00 AM运行,然后将其编辑为在星期五执行,等等。所有这些都在GUI界面中进行。
如何使用sidekiq进行操作?我知道有sidekiq调度程序,但是它基于预定义的.yml配置文件。
答案 0 :(得分:0)
使用cron作业。 https://github.com/ondrejbartas/sidekiq-cron。将用户作业保存在数据库中并调用作业。
class AbstractCar:
def __init__(self):
self.engine = self.engine_class()
def __init_subclass__(cls, * , engine_class, **kwargs):
super().__init_subclass__(**kwargs)
cls.engine_class=engine_class
@classmethod
def evil_black_magic(cls, **kwargs):
AbstractCar.__init_subclass__(engine_class=engine_class, **kwargs)
if '__init_subclass__' not in cls.__dict__:
cls.__init_subclass__ = evil_black_magic
当用户删除或更改作业时,只需搜索该作业并销毁即可。然后创建一个新的。
Sidekiq::Cron::Job.new(name: 'some database id', cron: '*/5 * * * *', class: 'HardWorker')