Я использую python и schedule lib для создания задания, похожего на cron.
class MyClass:
def local(self, command):
#return subprocess.call(command, shell=True)
print "local"
def sched_local(self, script_path, cron_definition):
import schedule
import time
#job = self.local(script_path)
schedule.every(1).minutes.do(self.local(script_path))
while True:
schedule.run_pending()
time.sleep(1)
При вызове этого в основном
cg = MyClass()
cg.sched_local(script_path, cron_definition)
Я получил это:
local
Traceback (most recent call last):
File "MyClass.py", line 131, in <module>
cg.sched_local(script_path, cron_definition)
File "MyClass.py", line 71, in sched_local
schedule.every(1).minutes.do(self.local(script_path))
File "/usr/local/lib/python2.7/dist-packages/schedule/__init__.py", line 271, in do
self.job_func = functools.partial(job_func, *args, **kwargs)
TypeError: the first argument must be callable
При вызове другого метода внутри класса вместо sched_local, например
def job(self):
print "I am working"
Работа работает нормально.