如果用户仍然登录,则每30分钟运行一次方法

时间:2013-02-23 05:02:26

标签: ruby-on-rails scheduled-tasks delayed-job

我正在尝试找出一种策略,用于在用户登录我的网站时触发每30分钟运行一次的方法。

我目前有一个名为signed_id?的方法,用于检查用户是否已登录,我目前正在使用delayed_job gem来处理我的应用程序中的其他后台进程。

我听说过whenevercron宝石,但我不确定什么才能满足我的特殊需求。是否有适合delayed_job的内容?

2 个答案:

答案 0 :(得分:2)

好吧,您可以为上次触发该方法的时间戳的每个用户保留一个数据库记录(第一次只是在他们登录时),并且每分钟都有一个cron。

您将保留客户端首次登录时的服务器端记录,并继续ping(可能使用ajax)以确保用户仍然登录。您可以使Javascript执行操作(转到服务器)每30分钟执行一次方法,当然是根据你第一次登录时的服务器端记录来计算的。这个计数也会每30分钟重置一次,继续循环。

我希望这会有所帮助。

答案 1 :(得分:0)

是的,使用cron它更灵活,更易于使用

cron on ruby