【问题标题】:Run a query at specifec time daily每天在特定时间运行查询
【发布时间】:2021-01-04 08:10:25
【问题描述】:

我正在开发汽车租赁应用程序,我的问题很简单。但我无法表达 现在,每当插入订单时,我都需要一个任务运行器来继续运行所有订单。并继续将每日费率添加到总到期字段中

例如,如果今天是 17/9

OrderStartDate   RentalAmount     TotalDue
17/9/2020 17:00        100              0
17/9/2020 16:00        100              0

18/9 16:00 字段会像

OrderStartDate   RentalAmount     TotalDue
17/9/2020 17:00       100              0
17/9/2020 16:00        100             100

18/9 17:00 字段会像

OrderStartDate   RentalAmount     TotalDue
17/9/2020 17:00        100             100
17/9/2020 16:00        100             100

我的应用是 react + nodejs(gql,prisma,nexus) 我对使用 web sockets、feathers-js 的实时应用程序进行了研究,但没有找到我真正需要的东西

【问题讨论】:

    标签: node.js postgresql real-time feathersjs


    【解决方案1】:

    您可以使用 MySql EVENT 或 TRIGGER 来执行此操作。

    但是,还有更好的方法。与其在插入或更新其他行或列时更改某些行和列,不如在需要时使用查询生成总和。例如,

    SELECT rental_id, SUM(rental_amount) total_due
      FROM rental
     GROUP BY rental_id
    

    另一种方法是使用运行总计查询。你应该阅读一下。

    【讨论】:

      【解决方案2】:

      您需要安排每天(或每分钟、每小时任何时间)运行的作业,这意味着始终以给定的时间间隔运行。

      这些被称为 cron 作业,

      有库可以做到这一点,如https://www.npmjs.com/package/node-cron,详细示例https://www.thirdrocktechkno.com/blog/how-to-set-up-a-cron-job-in-nodejs/

      或者您也可以在服务器调度程序上安排作业(更好的方法)

      【讨论】:

      • 这实际上是我的观点。有没有办法让我表中的每个订单都与它的开始日期同步? .如果我在服务器调度程序上安排了一个作业。这将每天或每周运行。我正在为每个订单寻找在自定义时间运行的东西
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      • 2013-04-18
      • 2016-06-05
      • 2020-11-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      相关资源
      最近更新 更多