求教一个关于计划任务中“分钟”设置的问题

cyzn_lfss 1天前 67

使用自带的范例,注释了循环执行部份,时间的分钟字段设置为数组。但程序运行的时候变成了每秒执行一次。

求教一下如何解决!

win.taskScheduler库中

112行这个循环需要改动吗:

			for(k,v in task.time ){
				if( type(v) === "table" ){
					if(!..table.find(v,now[k])) { task.pending = true; continue 2;}
				}
				elseif( now[k] != v ){  
					task.pending = true; continue 2; 
				} 
			}


最新回复 (2)
  • Mr_MAO 18小时前
    0 2

    官方库没有问题。

    因为taskScheduler.start()默认是1s检测一次它里面的任务,并根据每个任务的时间配置决定要不要执行它们。

    这样理解:在你代码中task2.time表中,仅设置了hour和minute字段,没有设置second字段,那就意味着0~59每一个秒数都满足条件。所以到了17:30后,taskScheduler.start()每秒检测task2任务时发现都满足执行条件,所以就每秒执行一次task2中的任务( 你的例子中任务是: winform.edit.print("...")  )。

    如果想到了指定的时+分后仅执行1次,可以这样写task2.time表:

    task2.time={
        second = 0;
        minute = {30,32,33};
        hour = 17;
    }


  • cyzn_lfss 15小时前
    0 3
    感谢您的解答! 可能是我的表达有误。 如果设置的时间仅有一个minure值时,任务仅仅启动一次(可以是设置分钟里的任意一秒)。 可当分钟字段为数组时,计划就重复启动,但我并不想指定“秒”字段。
返回