2013-02-23 68 views
1

我想找出触发方法每隔30分钟运行一次用户登录到我的网站的策略。如果用户仍然登录,则每30分钟运行一次方法

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

我听说过whenevercron宝石,但我不确定哪些最适合我的特殊需要。有什么与delayed_job适合吗?

回答

0

是:用cron更灵活和易于使用的

cron on ruby

+0

我可以找到有关使用cron设置循环任务的信息 - 但不是如何有条件地确定用户是否登录到站点。你知道这个用法的例子吗? – 2scottish 2013-02-23 05:26:24

+0

那么你可以编写一个逻辑来检查你是否有用户的活动会话。并且你可以在飞行中以有问题的方式设置cron。 – udnisap 2013-02-23 05:48:35

2

嗯,你可以保持一个数据库记录的时间戳,该方法的最后触发的每个用户(第一次只想每当他们登录时),并且每分钟运行一个cron。

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

我希望这会有所帮助。

+0

实质上,我正在与外部站点(创建外部站点上的易腐烂会话)进行交互。如果我每30分钟运行一次特定的呼叫(如果用户登录到我的站点),那么会话将保持打开状态。 – 2scottish 2013-02-23 05:20:09

+0

我很确定有会话保持打开状态的服务器端设置,如果这就是您需要完成的所有事情。如果你无法控制这些会议,我会得到你的困境。 我仍然建议使用Javascript来存储cookies,并保存他们已经登录的时间的全面记录,以确定执行此方法的频率。 – 2013-02-23 05:26:23

相关问题