2017-05-17 2 views
0

私はPythonでcronジョブのライブラリスケジューラを使用しています。私は予定されている仕事に複数の議論を送りたい。しかし、次のエラーが表示されています。スケジューラ - self.job_func = functools.partial(job_func、* args、** kwargs)

File "/Library/Python/2.7/site-packages/schedule/__init__.py", line 352, in do 
self.job_func = functools.partial(job_func, *args, **kwargs) 
TypeError: the first argument must be callable 

以下は私のコードです。私は、マルチスレッドを使用して、私のスレッドタスクをスケジュールしたいのです:

class myThread (threading.Thread): 
    def __init__(self, threadID, name, counter): 
    threading.Thread.__init__(self) 
    self.threadID = threadID 
    self.name = name 
    self.counter = counter 

def run(self): 
    print "Starting " + self.name 
    SomeClassInstance = SomeClass() 

これは動作しませんでした:

schedule.every(10).minutes.do(phoneidLogger.getSplunkLogs(arg1,arg2,arg3,arg4)) 

以下も助けにはならなかった。

schedule.every(10).minutes.do(phoneidLogger.getSplunkLogs,arg1,arg2,arg3,arg4) 
+0

ここで 'job_func'は定義されていますか? –

+0

申し訳ありません、正しくフォーマットできませんでした - その** phoneidLogger.getSplunkLogs **ここで、phoneidLoggerはクラスのインスタンスです。 – user93726

+0

ここで、phoneidLoggerは実際にSomeClassInstanceです。 – user93726

答えて

0

をあなたが合格する必要がありますあなたのスケジューラーに自由な機能。

phoneidLogger.getSplunkLogs(arg1, arg2, arg3) 

がこれを知っ

PhoneLoggerClass.getSplunkLogs(phoneidLogger, arg1, arg2, arg3) 

と同等であることを念頭に置いて

ベア、行うには正しいことは、私たちのスケジューラへの引数としてphoneidLoggerに渡しています。

schedule.every(10).minutes.do(PhoneLoggerClass.getSplunkLogs, 
           phoneidLogger, 
           arg1, arg2, arg3, arg4) 
+0

** schedule.every(10).minutes.do(splunkLogger.getSplunkLogs、phoneidLogger、arg1、arg2、arg3、arg4)** ---スレッドから私を抜け出しています。その実行されていません。 – user93726

+0

それから、あなたの質問にはもっと詳細が必要です。 [mcve]を提供してください。 –

+0

「スレッドから私を退出させる」とは何ですか? –

関連する問題