每T秒将列值增加X.

时间:2018-01-31 13:38:31

标签: mysql node.js

我想在每个设定的时间内增加(通常篡改)数据库列值(例如time_passed )。

如何解决此问题?我应该接近这个服务器端还是数据库端?

我的应用正在使用Express,Socket.IO,而我正在使用MySQL数据库。

2 个答案:

答案 0 :(得分:3)

假设我在午夜(00:00:00)存储时间戳,我有兴趣每10秒将列值(比如100)增加1。所以,实际上我不需要其他任何东西。 60秒后,我知道新值只是:

100 + (1 x ((60-0)/10)) = 106

答案 1 :(得分:-1)

我建议使用Cron作业。

  

软件实用程序Cron是类Unix的基于时间的作业调度程序   电脑操作系统。设置和维护软件的人   环境使用cron来调度作业(命令或shell脚本)   以固定的时间,日期或间隔定期运行。它通常   自动化系统维护或管理 - 尽管它   通用性使其有用   https://en.wikipedia.org/wiki/Cron

您可以设置Cron作业以定期自动运行脚本,您可以使用该脚本进行数据库维护。

Cron由crontab(cron table)文件驱动,该文件是一个配置文件,它指定在给定的时间表上定期运行的shell命令。用户可以拥有自己的crontab文件,并且通常有一个系统范围的crontab文件(通常位于/ etc或/ etc的子目录中),只有系统管理员才能编辑。

crontab文件的每一行代表一个作业,如下所示:

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                       7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * *  command to execute

以下示例将于每周六晚上11:45在/home/oracle/scripts/export_dump.sh运行脚本。

45 23 * * 6 /home/oracle/scripts/export_dump.sh