Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 对于长时间运行的后台任务,是否应该使用延迟作业?_Ruby On Rails_Heroku_Delayed Job - Fatal编程技术网

Ruby on rails 对于长时间运行的后台任务,是否应该使用延迟作业?

Ruby on rails 对于长时间运行的后台任务,是否应该使用延迟作业?,ruby-on-rails,heroku,delayed-job,Ruby On Rails,Heroku,Delayed Job,我有一个应用程序,我想自动停用用户72小时后,他们已经被激活。我已经设置了延迟工作,但现在想知道这是否是最好的选择 我的问题是,如果我将一项任务设定为未来72小时,那么员工是否会在这整个72小时内积极工作?(我很担心这一点,因为Heroku按小时收费) 我愿意在这里提出更好的方法。我的一个想法是使用一个exp_date列来设置它,并通过完全消除对DJ的需要来对照登录处的设置进行检查 您可以使用无工作gem,它是一个用于延迟作业的插件,这样您就不会让您的工作人员一直在heroku上运行 我的问题

我有一个应用程序,我想自动停用用户72小时后,他们已经被激活。我已经设置了延迟工作,但现在想知道这是否是最好的选择

我的问题是,如果我将一项任务设定为未来72小时,那么员工是否会在这整个72小时内积极工作?(我很担心这一点,因为Heroku按小时收费)


我愿意在这里提出更好的方法。我的一个想法是使用一个
exp_date
列来设置它,并通过完全消除对DJ的需要来对照登录处的设置进行检查

您可以使用无工作gem,它是一个用于延迟作业的插件,这样您就不会让您的工作人员一直在heroku上运行

我的问题是,如果我将一项任务设定为未来72小时,那么员工是否会在这整个72小时内积极工作?(我很担心这一点,因为Heroku按小时收费)

是的,它会一直开着。延迟作业持续ping数据库以查看其队列中是否有作业

而且,关于最好的选择,我想我宁愿把一列列称为
valid\u,直到
并把日期定为活动日期。我只向在日期小于或等于有效日期的用户登录(或任何内容)。而且,我可能每月定期运行一次cron作业来删除
无效的
用户


就像@leesungchul建议的那样,你可以用这个,看起来很酷

我已经研究了其中的几个,但我仍然不清楚员工是否会在整个延迟期间保持活跃。在当地,似乎是这样。如果是这样的话,那么即使工人在工作结束后被解雇,即使它只是在等待,它也会在很长一段时间内处于活动状态,并且会在这段时间内产生一个活动工作人员的成本。您使用的是什么身份验证gem?您肯定可以使用自定义设计策略,在数据库可验证后实施该策略,该策略检查帐户的创建日期,然后进行阻止登录-更简单,不需要cron作业,它只在用户尝试登录时生效。是的,我认为这是最好的方法。至少我可以和DJ一起玩了!