Exemple #1
0
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 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
Exemple #3
0
 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
Exemple #4
0
    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'任务模板不能为空')
Exemple #5
0
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
Exemple #6
0
 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
Exemple #7
0
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
Exemple #8
0
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, [])
Exemple #10
0
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})
Exemple #11
0
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
Exemple #12
0
 def assertDiscovery(self):
     apps = autodiscover()
     self.assertTrue(apps)
     self.assertIn('c.unittest.SomeAppTask', tasks)
     self.assertEqual(tasks['c.unittest.SomeAppTask'].run(), 42)