Tag: 调度程序

为什么Ruby on Rails会在每次点击时创建新的Sessions(有时)?

出于某种原因,我的RoR应用程序中的会话处理程序似乎在许多用户的生产中表现得很奇怪。 我正在使用默认的RoR ActiveRecord会话存储,在开发过程中一切正常。 只要我保持浏览器打开,每次修改会话时都会更新一个现有数据行,就像您希望会话一样。 当我去生产服务器时,我个人观察到同样的行为。 但是,在查看数据库时,我会在此屏幕截图中看到很多行: http://sofzh.miximages.com/ruby-on-rails// (抱歉,我不能直接在这里包含图片,因为我是新用户) 该网站包含在另一个网站上的iframe中,并有一个调度程序,该调度程序将根据某些会话数据(即对所有用户,相同的URL)将用户发送(redirect_to)到同一控制器中的另一个操作(mydomain.com/dispatcher )将包含在iframe中。 映射到此URL的操作将根据会话[:current_action]决定将用户重定向到哪里。 该网站几乎没有任何流量,所以实际上没有办法。 10个不同的用户每秒向网站发出请求。 实际上,我可以在production.log中看到,在重定向时,用户具有不同的session_id,例如,当访问调度程序时,用户可能具有特定的sessionid,并且在请求实际的目标操作时(由于redirect_to in调度员),sessionid将更改为其他内容。 此外,会话数据行的大多数(> = 97.5%,超过16000个数据行)具有0秒的“生存期”(即created_at等于updated_at)。 你知道什么可能导致这个问题吗? redirect_to调用是否有可能搞乱RoR会话处理? 非常感谢您的想法!

Rails 5调度程序每天更新一次数据库

我是rails的新手,希望每天午夜运行一次批处理文件/计划任务,检查哪些条目已过期。 表中的每条记录都有一个closing_date,在此之后,这些记录必须处于非活动状态。(DB上的status active = false)。 所以基本上它将运行2个SQL查询来获取所有记录,然后将另一个字段标记为对于过时的记录处于非活动状态。我正在使用Rails 5。 我应该如何处理这个-gem(rufus,无论是什么,发条或任何其他gem)或者只是一些cronjob的系统工具?我要将我的数据库更改为PostgreSQL,这样会产生什么影响? 任何建议或示例代码任何人都可以分享,以获得一个想法。