コード例 #1
0
ファイル: rqueue.py プロジェクト: Masutangu/Elric
 def submit_job(self, func, job_key, args=None, kwargs=None, trigger=None, job_id=None,
                replace_exist=False, need_filter=False, **trigger_args):
     """
         submit job to master through redis queue
         :type func: str or callable obj or unicode
         :type job_key: str or unicode
         :type args: tuple or list
         :type kwargs: dict
         :type trigger: str or unicode
         :type job_id: str or unicode
         :type replace_exist: bool
         :type trigger_args: dict
     """
     # use worker's timezone if trigger don't provide specific `timezone` configuration
     trigger_args['timezone'] = self.timezone
     job_in_dict = {
         'id': "%s:%s" % (self.name, job_id) if job_id else None,
         'func': func,
         'args': args,
         'trigger': create_trigger(trigger, trigger_args) if trigger else None,
         'kwargs': kwargs,
         'job_key': '%s:%s' % (self.name, job_key),
         'need_filter': need_filter,
         'replace_exist': replace_exist
     }
     job = Job(**job_in_dict)
     job.check()
     self.jobqueue.enqueue('__elric_submit_channel__', job.serialize())