【问题标题】:How to run a SQL statement periodically?如何定期运行 SQL 语句?
【发布时间】:2011-03-15 07:46:43
【问题描述】:

我需要执行一个“原始”SQL 语句来更新对象的状态(类似于UPDATE users SET status=1 WHERE <some conditions>

我需要它始终在后台每 60 秒运行一次。

我该怎么做?

附言。环境为 Ubuntu 10.10 和 Rails 3.0.3

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 daemon


    【解决方案1】:

    您必须使用 cron (crontab) 定期调用 Rail 脚本来执行此更新。

    【讨论】:

    • 但是怎么做呢?另外,整个 Rails 环境是否会每 60 秒加载一次以运行查询?有什么可以举的例子吗?
    • 我已经收藏了一次这个教程:ameravant.com/posts/… 可能对你有用
    【解决方案2】:

    加载rails环境运行一条sql语句是一种巨大的资源浪费。

    mysql的crontab:

    0 * * * * mysql your_db_name -e "users SET status=1 WHERE <some conditions>;"
    

    PostgreSQL 的 Crontab:

    0 * * * * psql  -c "users SET status=1 WHERE <some conditions>" your_db_name
    

    您可能必须在 crontab 文件的顶部设置 PATH 变量,以确保 mysql/psql 命令能够解析。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2019-04-02
      • 2017-05-08
      • 1970-01-01
      • 2014-11-23
      相关资源
      最近更新 更多