Parcourir la source

Fixes bug in inspect.scheduled. Closes #829

Ask Solem il y a 12 ans
Parent
commit
fa2d1f8b88
1 fichiers modifiés avec 8 ajouts et 5 suppressions
  1. 8 5
      celery/worker/control.py

+ 8 - 5
celery/worker/control.py

@@ -141,6 +141,7 @@ def time_limit(panel, task_name=None, hard=None, soft=None, **kwargs):
 
 @Panel.register
 def dump_schedule(panel, safe=False, **kwargs):
+    from celery.worker.job import Request
     schedule = panel.consumer.timer.schedule
     if not schedule.queue:
         logger.debug('--Empty schedule--')
@@ -153,11 +154,13 @@ def dump_schedule(panel, safe=False, **kwargs):
     info = map(formatitem, enumerate(schedule.info()))
     logger.debug('* Dump of current schedule:\n%s', '\n'.join(info))
     scheduled_tasks = []
-    for item in schedule.info():
-        scheduled_tasks.append({'eta': item['eta'],
-                                'priority': item['priority'],
-                                'request':
-                                    item['item'].args[0].info(safe=safe)})
+    for info in schedule.info():
+        item = info['item']
+        if item.args and isinstance(item.args[0], Request):
+            scheduled_tasks.append({'eta': info['eta'],
+                                    'priority': info['priority'],
+                                    'request':
+                                        item.args[0].info(safe=safe)})
     return scheduled_tasks