天道酬勤,学无止境

我们如何每 12 小时运行一次 node-cron 作业?(How can we run the node-cron job in every 12 hours interval?)

问题

我想每 12 小时安排一次电子邮件,为此我使用了 node-cron。

我使用了以下代码,但它没有给我实际结果,所以请帮我解决这个问题,

var job = new CronJob('0 0 */12 * * *', function(){
   //email send code ..
});
回答1

查看文档,代码应如下所示:

var cron = require('node-cron');

cron.schedule('0 0 */12 * * *', function(){
  console.log('running a task every twelve hours');
});

注意:您需要一直运行该应用程序,否则将不会执行 cron。

如果您在控制台上打印老太时间,我们将得到如下所示:

      cronTime: {
        source: '0 0 */12 * * *',
        zone: 'America/Los_Angeles',
        second: {
          '0': true
        },
        minute: {
          '0': true
        },
        hour: {
          '0': true,
          '12': true
        },
        dayOfMonth: {
          '1': true,
          '2': true,
          '3': true,
          '4': true,
          '5': true,
          '6': true,
          '7': true,
          '8': true,
          '9': true,
          '10': true,
          '11': true,
          '12': true,
          '13': true,
          '14': true,
          '15': true,
          '16': true,
          '17': true,
          '18': true,
          '19': true,
          '20': true,
          '21': true,
          '22': true,
          '23': true,
          '24': true,
          '25': true,
          '26': true,
          '27': true,
          '28': true,
          '29': true,
          '30': true,
          '31': true
        },
        month: {
          '0': true,
          '1': true,
          '2': true,
          '3': true,
          '4': true,
          '5': true,
          '6': true,
          '7': true,
          '8': true,
          '9': true,
          '10': true,
          '11': true
        },
        dayOfWeek: {
          '0': true,
          '1': true,
          '2': true,
          '3': true,
          '4': true,
          '5': true,
          '6': true
        }
      },
回答2

你可以试试这个模块 https://www.npmjs.com/package/node-schedule

var schedule = require('node-schedule');


var rule = new schedule.RecurrenceRule();


var j = schedule.scheduleJob('1 * * * * *', function(){
  console.log('Will run after every mint');
});



var rule = new schedule.RecurrenceRule();

rule.second=1;

var j = schedule.scheduleJob(rule, function(){
  console.log('this will run after every one seocnd ');
});

回答3

试试这个间隔 12 小时...

var job = new CronJob('0 0 12 * * *', function(){

  //email send code ..
});

0 --> 秒 0 --> 分钟

12--> 12 小时间隔

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • node-cron 每 3 小时运行一次作业(node-cron run job every 3 hours)
    问题 我试图每 3 小时运行一次 node-cron 作业,但我不确定我是否做得对。 现在我正在使用: * * */8 * * * 这样对吗? 回答1 您应该将秒和分值清零,并使用 /3 的步长。 对此的 cron 表达式是 0 0 */3 * * * 其计算结果为“0 秒,每 3 小时 0 分钟”。 您当前的表达式* * */8 * * *将尝试在每 8 小时之后的每一分钟的每一秒运行。
  • Cron表达式每N分钟运行一次(Cron expression to run every N minutes)
    问题 我需要构建一个cron表达式来在用户单击“开始”按钮后每10分钟运行一次作业。 我正在尝试做类似的事情: 0 42/10 * * * ? * 42/10就像用户单击以从hh:42开始(例如:18h42)。 下一个时间表是这样的: 1. Friday, March 20, 2015 6:42 PM 2. Friday, March 20, 2015 6:52 PM 3. Friday, March 20, 2015 7:42 PM 4. Friday, March 20, 2015 7:52 PM 5. Friday, March 20, 2015 8:42 PM 问题是第二次执行后,作业等待一个小时才能执行下一次执行。 我如何建立一个cron表达式,该表达式可立即启动并在N分钟后仍运行之后? 预先感谢。 回答1 如果要每n分钟运行一次cron,则有两种情况需要考虑: 每n分钟(60可被n整除) 从分钟YYYY-MM-DD HH:MM:00开始的每n分钟(通用) 后一种情况是通用情况,涵盖了60无法被n整除的情况。 提到这种情况需要“开始时间”。 通过一些简单的数学运算,您可以快速弄清楚为什么会这样。 每n分钟(60可被n整除) 为此,我们结合使用了定义范围和步长值的方法: man 5 crontab :步值可以与范围结合使用。 在带有/<number
  • Nodejs 准确地运行一次代码(Nodejs Run code at exactly time once)
    问题 我想在特定时间运行我的流程,但只运行一次。 我应该使用 cron 作业,执行然后停止作业还是使用 setTimeout ? 哪个更好? 更新:我在 node-cron 模块中找到了它。 我认为这比使用 setTimeout 更好。 Date 的另一个例子 var CronJob = require('cron').CronJob; var job = new CronJob(new Date(), function(){ //runs once at the specified date. }, function () { // This function is executed when the job stops }, true /* Start the job right now */, timeZone /* Time zone of this job. */ ); 回答1 查看 node-schedule 包。 根据文档,您可以在确切日期安排功能。 这是在 2012 年 12 月 21 日上午 5:30 安排活动的文档示例... var schedule = require('node-schedule'); var date = new Date(2012, 11, 21, 5, 30, 0); var j = schedule.scheduleJob(date
  • 如何每 36 小时运行一次 crontab(How to run crontab for every 36 hours)
    问题 我正在使用 php 创建自动 cron 选项卡。 我需要在以下时间运行此 cron 选项卡。 24 小时或 36 小时或 48 小时或 72 小时或 96 小时。 我很困惑在 cron 选项卡中设置了 36 小时。 如何设置每 36 小时运行一次的 cronjob? 请指教 回答1 我认为您不能指定超过 24 小时。 您可以让它每小时运行一次,每次命中时都会增加存储在数据库或文件中的 var,然后当 var 达到 36 时运行脚本并将其重置为 1。 编辑:在同一张纸条上,您可以每 12 小时运行一次,并将其增加 12 例如 : $var = (int) file_get_contents('count.txt'); $var++; if($var === 36) { //run script //update count.txt }else { //update count.txt die(); } 回答2 这不是一个很好的解决方案,但是...... 将 cron 作业设置为每 12 小时运行一次脚本。 在脚本中,添加如下内容: $hour_of_year = date('z') * 24 + date('H'); if ($hour_of_year % 36 == 0) { // RUN THE PROGRAM } else { // DONT RUN THE
  • 每 25 小时进行一次 Cronjob?(Cronjob every 25 hours?)
    问题 如何设置每 25 小时运行一次的 cronjob? 回答1 只是猜测,但你没有 最好的解决办法:编写一个脚本来跟踪它上次运行的时间,如果超过 25 小时前,则有条件地运行它。 Cron 该驱动程序脚本每小时运行一次。 回答2 当您启动当前作业时,发出指定下一个作业的时间和日期的 at 命令会更容易,但您可以通过在当前运行开始时更新进程的 cronjob 条目(而不是 at最后 'cos 那么你必须考虑运行作业的时间)。 回答3 如果使用此 snipnet 设置 25 小时过去,则设置每小时作业并检查脚本: if [ $((((`date +%s` - (`date +%s` % 3600))/3600) % 25)) -eq 0 ] ; then your script fi 回答4 如果您计算自 Epoch 以来的小时(、分钟、天或周),在脚本顶部添加一个条件,并将脚本设置为在您的 crontab 上每小时运行一次,则您可以获得任何频率: #!/bin/bash hoursSinceEpoch=$(($(date +'%s / 60 / 60'))) # every 25 hours if [[ $(($hoursSinceEpoch % 25)) -ne 0 ]]; then exit 0 fi date(1) 返回当前日期,我们将其格式化为自 Epoch ( %s )
  • 如何设置cron每隔一个半小时运行某些命令?(How can I set cron to run certain commands every one and a half hours?)
    问题 如何设置cron每隔一个半小时运行某些命令? 回答1 在普通cron中用单个表达式是不可能的。 在不修改代码的情况下,您可以做的最好的事情是: 0 0,3,6,9,12,15,18,21 * * * [cmd] 30 1,4,7,10,13,16,19,22 * * * [cmd] 这些文件可能是可压缩的,具体取决于您必须使用的cron版本: 0 */3 * * * [cmd] 30 1-23/3 * * * [cmd] 回答2 有充分的理由为什么您不能使用1个小时或2个小时? 肯定会更简单。 我还没有亲自尝试过,但是您可以在这里找到一些有关使cron每90分钟运行一次的信息:http://keithdevens.com/weblog/archive/2004/May/05/cron 来自以上链接的专家: 0 0,3,6,9,12,15,18,21 * * * <commands> 30 1,4,7,10,13,16,19,22 * * * <commands> 回答3 crontab中有两行。 遵循以下原则: 0 0,3,6,9,12,15,18,21 * * * /usr/bin/foo 30 1,4,7,10,13,16,19,22 * * * /usr/bin/foo 回答4 #! /bin/sh # Minute Cron # Usage: cron-min
  • 在 OpenShift(红帽云)上每 5 分钟运行一次 CRON 作业(Run CRON job every 5 minutes on OpenShift (Red Hat Cloud))
    问题 我试图每 5 分钟运行一次这个脚本。 在 OpenShift 上运行 CRON 作业的唯一方法似乎是使用他们的 CRON 插件。 而 CRON 插件只允许每分钟、每小时和每天的脚本(通过将脚本放在相应的文件夹中)。 我试图每 5 分钟运行一次这个脚本: #!/bin/bash php /var/lib/openshift/53434c795973ca1ddc000668/app-root/runtime/repo/scheduled.php > /dev/null 2>&1 但现在它每分钟运行一次(因为它被放置在分钟文件夹中)。 我怎样才能重写它,让它每 5 分钟运行一次? 回答1 修改脚本,使其检查当前时间,如果不是 5 分钟的倍数,则退出。 像这样的东西: #!/bin/bash minute=$(date +%M) if [[ $minute =~ [05]$ ]]; then php ... fi =~运算符的右操作数是一个正则表达式; 如果当前分钟以0或5结尾,则上述匹配。 其他几种方法是可能的: if [[ $minute =~ .[05] ]]; then (检查后跟0或5任何字符; $minute始终正好是 2 个字符)。 (用户 theshadowmonkey 在评论中建议: if [ $(($minute % 5)) -eq 0 ]; then
  • 是否有用于node.js的作业调度程序库? [关闭](Is there a job scheduler library for node.js? [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 4年前关闭。 改善这个问题 是否有一些cron之类的库,可以让我安排某些功能在特定时间运行(例如15:30,而不是从现在开始x个小时等等)? 如果没有这种库,应该如何实现呢? 我是否应该将回调设置为每秒调用一次,检查时间并开始为该时间安排的作业? 回答1 node-cron就是我所描述的 回答2 node-schedule Node的cron类和非cron类作业调度程序。 回答3 议程是针对节点的轻型作业调度。 这将为您提供帮助。 回答4 Later.js是一个非常不错的JavaScript“调度程序”库。 可以在Node.js或Web浏览器上运行。 回答5 我正在使用kue:https://github.com/learnboost/kue。 很好 官方功能和我的评论: 延迟的工作。 如果要让作业在特定时间运行,请计算该时间与现在之间的毫秒数。 调用job.delay(milliseconds)(文档说分钟,这是错误的。)不要忘记添加“ jobs.promote();”。 当您启动工作时。 工作事件和进度pubsub。 我不明白丰富的集成用户界面。 很有用。 您可以在集成UI中检查作业状态(完成,运行,延迟),而无需编写任何代码。
  • 将cron作业配置为每15分钟在Jenkins上运行(Configure cron job to run every 15 minutes on Jenkins)
    问题 我如何每隔15分钟在Jenkins上进行一次定时任务? 这是我尝试过的: 在Jenkins上,我使用cron语法设置了每15分钟运行一次的工作: 14 * * * * 但是作业将每小时执行一次,而不是每15分钟执行一次。 我收到有关cron语法格式的警告: Spread load evenly by using ‘H * * * *’ rather than ‘14 * * * *’ 这可能是cron作业每小时执行一次而不是15分钟执行一次的原因吗? 回答1 您的语法略有错误。 说: */15 * * * * command | |--> `*/15` would imply every 15 minutes. *表示cron表达式与该字段的所有值匹配。 /描述范围的增量。 回答2 1)您的cron错误。 如果您想每隔15分钟在Jenkins上运行作业,请使用以下命令: H/15 * * * * 2)来自Jenkins的警告JENKINS-17311随附Spread load evenly by using '...' rather than '...'来平均分散负载: 为了使定期计划的任务在系统上产生均匀的负载,应尽可能使用符号H(“哈希”)。 例如,将0 0 * * *用于一打日常工作,将导致午夜时分大幅增加。 相反,使用HH * * *仍会每天执行一次每个作业
  • node-cron 不能正常工作?(node-cron does not work properly?)
    问题 我在 Heroku 上部署了一个应用程序:myapp 我在里面写了一些 cron 代码: var time = require('time'); var CronJob = require('cron').CronJob; var job = new CronJob({ cronTime: '00 45 12 * * *', onTick: clearReserve, start: true, timeZone: 'Asia/Shanghai' }); 我的目的是每天在特定时间调用名为“clearReserve”的函数。 但它只在我将代码上传到 heroku 的第一天起作用,并且永远不会再做这个 cron 工作。 PS:这个“clearReserve”函数将操纵我的数据库,我使用我在 MongoLab 中创建的 MongoLab URI,而不是 Heroku 附加组件; 回答1 由于 Heroku dyno 进入睡眠状态,您的 cron 作业再也不会运行了。 https://devcenter.heroku.com/articles/dynos#dyno-sleeping 为了执行您的 cron 作业,您需要让 Heroku 应用程序 24/7 保持清醒。 为了确保您的 Heroku 应用程序不会进入睡眠状态,请安装 NewRelic Heroku Addon
  • 每六个小时在Linux上运行一次cron作业(Running a cron job on Linux every six hours)
    问题 我每天如何每六个小时运行一次命令? 我尝试了以下操作,但没有成功: /6 * * * * * mycommand 回答1 您忘记了* ,并且您有太多字段。 这是你需要关心的时刻 0 */6 * * * /path/to/mycommand 这意味着从0开始的每六个小时,即在0、6、12和18小时,您可以将其写为 0 0,6,12,18 * * * /path/to/mycommand 回答2 您应该包括命令的路径,因为cron在广泛缩减的环境中运行。 您不会在交互式Shell会话中拥有所有环境变量。 指定脚本/二进制文件的绝对路径或在crontab本身中定义PATH是一个好主意。 为了帮助调试任何问题,我还将重定向stdout / err到日志文件。 回答3 0 */6 * * * command 这将是一天说6个小时的理想方式。 您的命令输入了六分钟! 回答4 请注意以下语法: * */6 * * * 这意味着每6小时60次(每分钟), 不是 每6小时一次。 回答5 0 */6 * * * 通常每6个小时执行一次crontab计划。 回答6 您需要使用* 0 */6 * * * /path/to/mycommand 您也可以参考https://crontab.guru/,它可以帮助您更好地安排时间... 回答7 尝试: 0 */6 * * * command 。 * 不得不
  • 如何安排詹金斯的工作?(How do I schedule jobs in Jenkins?)
    问题 我在詹金斯(Jenkins)添加了一份新工作,我想定期安排该工作。 在“配置作业”中,我选中“定期构建”复选框,并在“计划”文本字段中添加了表达式: 15 13 * * * 但是它不会在计划的时间运行。 安排工作是正确的程序吗? 该作业应在4:20 AM运行,但未运行。 回答1 通过将计划时间设置为15 13 * * *您可以告诉Jenkins在每年的第13个小时的第15分钟的每年的每月的每一天计划构建。 Jenkins使用了cron表达式,不同的字段是: MINUTES一小时内的分钟数(0-59) 一天的小时数(0-23) DAYMONTH一个月中的某天(1-31) 一年中的MONTH月(1-12) DAYWEEK星期几(0-7),其中0和7是星期天 如果您想每5分钟安排一次构建,则可以完成此工作: */5 * * * * 如果您想每天在8h00安排构建,这将完成工作: 0 8 * * * 对于过去的几个版本(2014年),Jenkins有一个新参数H (摘自Jenkins代码文档): 为了使定期计划的任务在系统上产生均匀的负载,应尽可能使用符号H (“哈希”)。 例如,将0 0 * * *用于一打日常工作,将导致午夜时分大幅增加。 相比之下,使用HH * * *仍会每天执行一次每个作业,但不是同时执行所有作业,更好地使用有限的资源。 另请注意:
  • cron 如何在内部调度作业?(How does cron internally schedule jobs?)
    问题 “现代” cron守护进程如何在内部安排他们的工作? 一些crond过去常常通过at安排一次运行。 因此,在写出 crontab 之后, crond : 解析所有未来事件的 crontab 和间隔的睡眠? 每分钟轮询一个聚合的 crontab 数据库以确定当前时间是否与计划模式匹配? 其他? 谢谢, 回答1 在这个问题中听到了一些蟋蟀。 Good 'ol RTFC 与一些离散事件模拟论文和维基百科: http://en.wikipedia.org/wiki/Cron#Multi-user_capability 这个cron使用的算法如下: 启动时,在所有帐户持有者的主目录中查找名为 .crontab 的文件。 对于找到的每个 crontab 文件,确定将来每个命令要运行的下一次。 将这些命令与相应的时间和“五场”时间说明符放在 Franta-Maly 事件列表中。 进入主循环: 检查队列头部的任务条目,计算它在未来运行多远。 睡那段时间。 在唤醒和验证正确时间后,使用创建它的用户的权限执行队列头部(在后台)的任务。 确定以后下一次运行这个命令并将其放回当时的事件列表中 回答2 我写了一篇博客文章来描述它。 从那里引用相关文本: 我们可以有一个有限的线程池,它将通过从PriorityBlockingQueue级为job.nextExecutionTime(
  • 如何设置cronjob 2天? [关闭](how to set cronjob for 2 days? [closed])
    问题 关闭。 此问题不符合堆栈溢出准则。 它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 1年前关闭。 改善这个问题 我们想使用cronjob创建数据库备份。 备份应该每两天进行一次。 可以使用以下cron条目吗? 0 0 2 * * * backup-command 如果这是错误的,请告诉我正确的命令来设置cron 2天。 回答1 从这里: Cron还支持“ step”值。 dom字段中的*/2值表示该命令每两天运行一次,同样,hours字段中的*/5表示该命令每5小时运行一次。 例如* 12 10-16/2 * * root backup.sh 是相同的: * 12 10,12,14,16 * * root backup.sh 所以我想你想要0 0 */2 * * 。 您所拥有的( 0 0 2 * * )将在每月的每个月的第二个午夜运行该命令。 ps:您的答案中似乎还有一个星号。 格式应为: minute hour dom month dow user cmd 因此,您的额外星号将出现在user字段中。 那是故意的吗? 回答2 免责声明:这是我在此处deleted答案的副本。 我确实相信这个问题更规范,我的回答在这里更合适。 有两种方法可以解释此问题。 我想在每月的第二天安排一次Cron工作。 我想每两天安排一次Cron工作。
  • 如何每小时在SQL Server中运行一个存储过程?(How to run a stored procedure in sql server every hour?)
    问题 我有一张桌子,希望每小时进行一些操作。 为此,我创建了一个存储过程,但不知道如何每小时调用一次。 我知道有一些预定的工作,但是如何使用它们。 是否还有某种服务可以持续每秒运行一次,我可以在其中放置我要执行的代码? 回答1 在SSMS中,导航到SQL Server代理->作业右键单击作业文件夹,然后选择新作业。 在弹出的对话框中,为作业命名,单击步骤,然后在新建上,您将看到如下所示的对话框,选择正确的数据库并键入您的过程名称 在点击计划后,选择新的,您将看到下图所示的内容,填写所需的所有内容,然后单击“确定”,在工作上单击“确定”,您应该被设置为 回答2 1)使用SQL Server代理(开放式MS Management Studio)2)新建作业3)添加步骤4)选择事务SQL 5)EXEC MyStroredProc 6)选择数据库7)添加计划8)每小时发生一次 添加通知以了解该过程运行良好(或不良)。 在“ SQL Server代理”的属性中,检查所有“自动重新启动”选项均已打开 回答3 设置一个SQL Server代理作业以每隔1小时执行一次存储过程
  • 如何在 GAE 中的 cron.xml 中安排作业,以便作业仅在周六早上 6:00 之后每 5 小时运行一次(How to schedule job in cron.xml in GAE such that job runs every 5 hours after 6:00 am only on Saturday)
    问题 我想使用 cron.xml 在 GAE 中安排作业。 我的要求是这样的:从周六早上 6:00 开始,每 5 小时一次。 回答1 Schedule 格式不支持此类计划规范。 但是您可以使用包含部分规范的计划,并在计划的作业本身内完成其余部分。 例如,您可以使用 cron 计划,例如every 5 hours from 6:00 to 0:00并且在计划作业中,您要做的第一件事是检查今天的日期,如果不是星期六则退出。
  • 从0分钟以外的时间开始,如何每5分钟执行一次cron作业?(How can I run a cron job every 5 minutes starting from a time other than 0 minutes?)
    问题 我想让脚本每5分钟运行一次,比方说从13:02开始运行,所以我可以让每5分钟运行另一个脚本,但是从13:04开始运行,因此第二个脚本在第一个作业开始后两分钟运行。 我怎样才能做到这一点? 回答1 用这个: */5+2 * * * * 1st-script */5+4 * * * * 2nd-script 为了将来参考,请看一下此在线Cron Job Generator。 更新 由于有报道说+语法在Ubuntu 14.04上不起作用,因此有一个变化: 2-59/5 * * * * 1st-script 4-59/5 * * * * 2nd-script 这将导致第一个脚本每5分钟运行一次,从每小时的开始偏移2分钟开始,第二个脚本的行为相同,偏移量为4分钟。 回答2 或者 */5 * * * * sleep 120; ( first_script.sh & ) ; sleep 120 ; second_script.sh 这种方法的好处是,您可以让crontab在分钟界限之外的其他时间开始计时(例如小时后的30秒) 回答3 */5+1 * * * * first_script.sh 每五分钟运行一次,但偏移一分钟 回答4 我需要类似的东西-从一个小时的第三分钟开始,每5分钟执行一次脚本。 我对上述解决方案表示怀疑(因为网站crontab.guru让我相信无效语法)
  • 如何每天在Ubuntu os上使用cron作业运行php脚本(how to run a php script daily with the cron job on Ubuntu os)
    问题 运行命令我正在使用ubuntu 12和灯泡服务器。 我想每1小时运行一次php脚本。 我已经创建了一个crontab来执行此操作,如果我使用命令crontab -l检查了我的cron列表,它会显示如下 # Edit this file to introduce tasks to be run by cron. 0 * * * * /usr/bin/php5 -q /var/www/cronjobs/cron1.php # Each task to run has to be defined through a single line # indicating with different fields when the task will be run # and what command to run for the task # # To define the time you can provide concrete values for # minute (m), hour (h), day of month (dom), month (mon), # and day of week (dow) or use '*' in these fields (for 'any').# # Notice that tasks will be started based on
  • 如何设置cron作业以每小时运行一次可执行文件?(How to set up a cron job to run an executable every hour?)
    问题 我需要设置一个cron作业,每小时运行一次使用gcc编译的可执行文件。 我以root用户身份登录并键入crontab -e 然后输入以下内容并保存文件。 0 * * * * /path_to_executable 但是,cron作业不起作用。 我看到当我输入/...path_to_executable时,出现了分段错误。 我只能从可执行文件所在的文件夹中执行该可执行文件。有什么办法可以解决此问题? 回答1 0 * * * * cd folder_containing_exe && ./exe_name 除非有其他需要设置的程序才能运行,否则它应该可以正常工作。 回答2 解决此问题的解决方案是找出出现分段错误的原因,然后加以解决。 回答3 您也可以使用@hourly即时0 * * * * 回答4 如果你正在使用Ubuntu,你可以把一个shell脚本,这些文件夹中的一个: /etc/cron.daily , /etc/cron.hourly , /etc/cron.monthly或/etc/cron.weekly 。 有关更多详细信息,请查看此帖子:https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job 回答5 您是说如果从任何其他目录调用该可执行文件,该可执行文件将无法运行? 这是可执行文件上的错误。
  • 如何安排代码在Elixir或Phoenix框架中每隔几个小时运行一次?(How can I schedule code to run every few hours in Elixir or Phoenix framework?)
    问题 假设我想每隔4个小时发送一堆电子邮件或重新创建站点地图或其他内容,我将如何在Phoenix或仅使用Elixir做到这一点? 回答1 有一个简单的替代方法,不需要任何外部依赖项: defmodule MyApp.Periodically do use GenServer def start_link do GenServer.start_link(__MODULE__, %{}) end def init(state) do schedule_work() # Schedule work to be performed at some point {:ok, state} end def handle_info(:work, state) do # Do the work you desire here schedule_work() # Reschedule once more {:noreply, state} end defp schedule_work() do Process.send_after(self(), :work, 2 * 60 * 60 * 1000) # In 2 hours end end 现在在您的监督树中: children = [ MyApp.Periodically ] Supervisor.start_link(children