我想在每个设定的时间内增加(或通常篡改)数据库列值(例如time_passed )。
如何解决此问题?我应该接近这个服务器端还是数据库端?
我的应用正在使用Express,Socket.IO,而我正在使用MySQL数据库。
答案 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