Javascript Node.js+;Mysql事件调度器:如何?

Javascript Node.js+;Mysql事件调度器:如何?,javascript,mysql,node.js,Javascript,Mysql,Node.js,我正在使用node.js构建一个产品管理平台,我的数据保存在MySQL数据库中。 此时,我需要使用MySQL的事件调度器在特定时间执行一些操作,当我在MySQL控制台中测试它时,一切都很顺利,但当通过node.js执行时,我遇到以下错误: 错误:ER_PARSE_错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行的“DELIMITER$$CREATE EVENT IF NOT EXISTS test ON SCHEDULE AT DATE_ADD(NOW(),”附

我正在使用node.js构建一个产品管理平台,我的数据保存在MySQL数据库中。 此时,我需要使用MySQL的事件调度器在特定时间执行一些操作,当我在MySQL控制台中测试它时,一切都很顺利,但当通过node.js执行时,我遇到以下错误:

错误:ER_PARSE_错误:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解在第1行的“DELIMITER$$CREATE EVENT IF NOT EXISTS test ON SCHEDULE AT DATE_ADD(NOW(),”附近使用的正确语法

我正在使用连接到我的数据库,我正在执行以下操作

var query = 'DROP EVENT IF EXISTS test;' +
  ' DELIMITER $$' +
  ' CREATE EVENT IF NOT EXISTS test' +
  '     ON SCHEDULE AT DATE_ADD(NOW(), INTERVAL 10 SECOND) ON COMPLETION PRESERVE ENABLE' +
  '     DO BEGIN' +
  '     SELECT @data_id:=quiz_platforms_has_quiz_data.quiz_data_id,' +
  '             @date_end:=quiz_platforms_has_quiz_data.timestamp_end' +
  '     FROM quiz_platforms_has_quiz_data' +
  '         WHERE quiz_platforms_has_quiz_data.quiz_platforms_id=5' +
  '         AND quiz_platforms_has_quiz_data.timestamp_start >= CURDATE()' +
  '         ORDER BY timestamp_start LIMIT 1;' +
  '     UPDATE quiz_platforms SET quiz_platforms.current_quiz_id=@data_id' +
  '         WHERE quiz_platforms.id=5;' +
  '     IF @date_end>0 THEN' +
  '         ALTER EVENT test ON SCHEDULE AT @date_end;' +
  '         ALTER EVENT test ENABLE;' +
  '     ELSE' +
  '         DROP EVENT test;' +
  '     END IF;' +
  '     END $$' +
  ' DELIMITER ; ';
orm_db.driver.execQuery(query, function(err, result) {
  if (err) {
    console.log(NOW + " - [DB-Event-ERR] " + err);
  }
});
问题是:我已经知道这个库和节点mysql本身都不支持这一点,我想知道是否有办法

我还考虑过使用cron管理器,并从服务器上执行此操作,而不是使用数据库的事件调度,但我不知道什么是最轻的解决方案

[编辑]

我需要通过node.js使用事件调度器,但我还没有成功完成。由于公司政策的原因,我无法透露太多细节。假设我们的设备在某个时间间隔内运行某个任务。我必须更新数据库表中的一列,以便它表示当前在该设备中运行的任务

表设备(列):id、名称、说明、当前任务

表任务(列):id、名称、说明

因此,如果我要检查设备当前的任务,我只需转到设备的表就可以知道


我必须能够在任务更改后立即更新该列的值。

你看到了吗?我刚才看到了,我的同事找到了。谢谢!尽管它没有我想要的性能比较……如果你问的是关于你真正问题的问题,而不是你的问题,你可能不需要cron和/或事件调度器解决方案..我真正的问题在那里,但我将对其进行编辑以使其更清楚,如果设备在某个时间间隔运行任务,设备如何“知道”什么时候开始运行任务?它应该运行哪个任务?是否有一个接口将这些传感器/设备与MySQL中的任务连接起来?或者它是一个断开连接的系统,而您使用MySQL完全是基于设备将在特定时间运行的事实?您看到了吗?我刚才看到了,我的同事找到了。谢谢!尽管它没有性能我希望进行的性能比较…如果您询问有关实际问题的问题,而不是您尝试的解决方案,则可以避免使用cron和/或事件调度器。我真正的问题在那里,但我将对其进行编辑以使其更清楚,如果设备在某个时间间隔运行任务,设备如何“知道”什么时候开始运行任务,它应该运行哪个任务?是否有一个接口将这些传感器/设备与MySQL中的任务连接起来,或者它是一个断开连接的系统,而您使用MySQL完全是基于设备将在特定时间运行这一事实?