def periodic_task_form(): loaders.autodiscover() tasks = list(sorted(registry.tasks.regular().keys())) choices = (("", ""), ) + tuple(zip(tasks, tasks)) class PeriodicTaskForm(forms.ModelForm): regtask = LaxChoiceField(label=_(u"Task (registered)"), choices=choices, required=False) task = forms.CharField(label=_("Task (custom)"), required=False, max_length=200) class Meta: model = PeriodicTask def clean(self): data = super(PeriodicTaskForm, self).clean() regtask = data.get("regtask") if regtask: data["task"] = regtask if not data["task"]: exc = forms.ValidationError(_(u"Need name of task")) self._errors["task"] = self.error_class(exc.messages) raise exc return data return PeriodicTaskForm
def check_task_template(self): # 检测任务模板 loaders.autodiscover() tasks = list(sorted(registry.tasks.regular().keys())) if self.jd.task_template: if self.jd.task_template not in tasks: self.result = self._TASK_TEMPLATE_ERROR1 else: self.result = self._TASK_TEMPLATE_ERROR2
def check_task_template(self): # 检测任务模板 loaders.autodiscover() tasks = list(sorted(registry.tasks.regular().keys())) if self.task_template: if self.task_template not in tasks: self.error_msg.append(u'任务模板不存在') else: self.error_msg.append(u'任务模板不能为空')
def get_all_tasks(): exclude_task = [ 'celery.backend_cleanup', 'celery.chain', 'celery.chord', 'celery.chord_unlock', 'celery.chunks', 'celery.group', 'celery.map', 'celery.starmap', 'djtest.celery.debug_task' ] loaders.autodiscover() task_list_all = list(sorted(registry.tasks.regular().keys())) for t in exclude_task: task_list_all.remove(t) return task_list_all
def test_discovery_with_broken(self): warnings.resetwarnings() if 'someapp' in settings.INSTALLED_APPS: installed_apps = list(settings.INSTALLED_APPS) settings.INSTALLED_APPS = installed_apps + ['xxxnot.aexist'] try: with warnings.catch_warnings(record=True) as log: autodiscover() self.assertTrue(log) finally: settings.INSTALLED_APPS = installed_apps
def get_task_template(request): irrelevant_tasks = [ 'YinguOnline.celery.debug_task', 'backup_ygolp', 'celery.backend_cleanup', 'celery.chain', 'celery.chord', 'celery.chord_unlock', 'celery.chunks', 'celery.group', 'celery.map', 'celery.starmap', 'runing_invest_script' ] loaders.autodiscover() response = HttpResponse() tasks = list(sorted(registry.tasks.regular().keys())) for t in irrelevant_tasks: tasks.remove(t) response.write(json.dumps(tasks)) return response
def get_task_template(request): # 任务模板 irrelevant_tasks = [ 'FirstBlood.celery.debug_task', 'celery.backend_cleanup', 'celery.chain', 'celery.chord', 'celery.chord_unlock', 'celery.chunks', 'celery.group', 'celery.map', 'celery.starmap', 'run', u'run_batch_job' ] loaders.autodiscover() response = HttpResponse() tasks = list(sorted(registry.tasks.regular().keys())) for t in irrelevant_tasks: tasks.remove(t) response.write(json.dumps(tasks)) return response
def test_discovery_with_broken(self): warnings.resetwarnings() if 'someapp' in settings.INSTALLED_APPS: if django.VERSION < (1, 7): # Django < 1.7 installed_apps = list(settings.INSTALLED_APPS) settings.INSTALLED_APPS = installed_apps + ['xxxnot.aexist'] try: # we should get a warning when loading xxxnot.aexist with warnings.catch_warnings(record=True) as log: autodiscover() self.assertTrue(log) finally: settings.INSTALLED_APPS = installed_apps else: # Django 1.7 with warnings.catch_warnings(record=True) as log: # we should not get any warnings autodiscover() self.assertEqual(log, [])
def get_task_template(request): irrelevant_tasks = [ 'zlcelery.celery.debug_task', 'celery.backend_cleanup', 'celery.chain', 'celery.chord', 'celery.chord_unlock', 'celery.chunks', 'celery.group', 'celery.map', 'celery.starmap', ] loaders.autodiscover() tasks = list(sorted(registry.tasks.regular().keys())) for t in irrelevant_tasks: tasks.remove(t) tasks_json = json.dumps(tasks) return render(request, 'return_value.html', {'return_value': tasks_json})
def secured_periodic_task_form(): """ Based on djcelery.admin.periodic_task_form """ loaders.autodiscover() tasks = list(sorted(registry.tasks.regular().keys())) choices = (("", ""), ) + tuple(zip(tasks, tasks)) class SecuredPeriodicTaskForm(forms.ModelForm): """ Either fill in "periodic_task", or the fields (reg)task, name, ... If periodic_task is filled, (reg)task, name will be filled if empty. """ # name = forms.CharField(max_length=200, required=False) regtask = LaxChoiceField(label=_(u"Task (registered)"), choices=choices, required=False) task = forms.CharField(label=_("Task (custom)"), required=False, max_length=200) data_set = forms.ModelChoiceField(queryset=DataSet.objects.all(), required=False) staff_only = forms.BooleanField(required=False, initial=True) class Meta: model = SecuredPeriodicTask def clean(self): data = super(SecuredPeriodicTaskForm, self).clean() regtask = data.get("regtask") if regtask: data["task"] = regtask if not data["task"]: exc = forms.ValidationError(_(u"Need name of task")) self._errors["task"] = self.error_class(exc.messages) raise exc return data return SecuredPeriodicTaskForm
def assertDiscovery(self): apps = autodiscover() self.assertTrue(apps) self.assertIn('c.unittest.SomeAppTask', tasks) self.assertEqual(tasks['c.unittest.SomeAppTask'].run(), 42)