我正在尝试找出一种策略,用于在用户登录我的网站时触发每30分钟运行一次的方法。
我目前有一个名为signed_id?
的方法,用于检查用户是否已登录,我目前正在使用delayed_job
gem来处理我的应用程序中的其他后台进程。
我听说过whenever
和cron
宝石,但我不确定什么才能满足我的特殊需求。是否有适合delayed_job
的内容?
答案 0 :(得分:2)
好吧,您可以为上次触发该方法的时间戳的每个用户保留一个数据库记录(第一次只是在他们登录时),并且每分钟都有一个cron。
您将保留客户端首次登录时的服务器端记录,并继续ping(可能使用ajax)以确保用户仍然登录。您可以使Javascript执行操作(转到服务器)每30分钟执行一次方法,当然是根据你第一次登录时的服务器端记录来计算的。这个计数也会每30分钟重置一次,继续循环。
我希望这会有所帮助。
答案 1 :(得分:0)
是的,使用cron它更灵活,更易于使用