附表的Python Cron作业无法正常工作

时间:2018-08-16 16:23:13

标签: python scope cron scheduled-tasks

我想在列表上重复2分钟,然后每次将一个元素移到列表的更远处。我使用“时间表”执行任务。脚本如下:

if __name__ == '__main__':
    machines_queue=[[...],[...],...] # list of the sublists
    global counter
    counter=   0

    def job(sub_list):
        somefunction(sub_list) # here I want each 2 min  iteration a sublist from machine_queue further  
        counter= counter +1    # here is pop the Error on the counter  
        print("I'm working...")

    schedule.every(1).minutes.do(job,sub_list= machines_queue[counter])
    print(counter)


    while True :
        schedule.run_pending()` 

第一次运行良好,他们在柜台上收到此错误消息:

“ UnboundLocalError:分配前已引用本地变量'counter'。”

我不明白,因为我将变量设置为全局变量,所以我没有遇到范围问题。

如果您有想法,请....::)预先感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您应在要允许访问该变量的函数内使用global语句。将global counter移动到job函数的开头,它将起作用。

答案 1 :(得分:0)

我的工作解决方案是每分钟执行一次具有各种功能和条件的任务:只需像往常一样执行正常循环,然后在最后添加时间睡眠(例如:time.sleep(120)。函数/ main中的所有代码,如果仍然需要,可以在其上使用Schedule库...。