1. 27 Apr, 2021 1 commit
  2. 21 Apr, 2021 1 commit
  3. 30 Mar, 2021 3 commits
  4. 23 Mar, 2021 3 commits
  5. 12 Mar, 2021 1 commit
  6. 22 Feb, 2021 1 commit
  7. 19 Feb, 2021 1 commit
  8. 16 Feb, 2021 1 commit
  9. 15 Nov, 2019 1 commit
  10. 16 Feb, 2021 1 commit
  11. 26 Jan, 2021 1 commit
  12. 02 Dec, 2020 6 commits
  13. 17 Nov, 2020 1 commit
  14. 04 Nov, 2020 1 commit
  15. 12 Oct, 2020 3 commits
  16. 22 Sep, 2020 1 commit
  17. 01 Mar, 2019 2 commits
  18. 28 Feb, 2019 3 commits
    • Philippe Pepiot's avatar
      celery-monitor: requeue all pending tasks · fedf86550807
      Philippe Pepiot authored
      It can occur, for instance in case of "worker lost", that task events are not
      sent in the "MONITOR_KEY" list in redis.
      The proposed solution is to regularly check pending tasks status.
      Since this is almost the same use, this can replace the old "requeue" behavior
      of failed sync_task_state() which was based on a "PENDING_KEY" list in redis.
      So, every 10 min, was 1min before, but 10 min seems more reasonable, check all
      pending tasks status within the visibility_timeout, since tasks outside this
      range cannot have state stored in the broker.
    • Philippe Pepiot's avatar
      Track worker exited prematurely issues · c6ec94bc9f69
      Philippe Pepiot authored
      In case of exited worker (segfault), AsyncResult.traceback is None and
      information is in AsyncResult.result, record it in the failed transition
      Add a dedicated test class, this require to run the worker in prefork mode,
      otherwise, in solo mode the information about worker lost isn't tracked.
      Use "import ctypes; ctypes.string_at(0)" to simulate a segfault.
    • Philippe Pepiot's avatar
  19. 07 Feb, 2019 3 commits
  20. 05 Feb, 2019 2 commits
  21. 30 Jan, 2019 3 commits
    • Philippe Pepiot's avatar
      Update to celery 4 · 90ab474e75a2
      Philippe Pepiot authored
      This is not backward compatible with celery 3, so pin celery>=4
      See http://docs.celeryproject.org/en/4.0/whatsnew-4.0.html for summary of changes
      Change attributes from celery.app.config to lower case.
      Drop setting serializer to json in README and tests since json is now the
      default serializer.
      I had issues with test_workflow_group() where AsyncResult().get on the *group*
      task_id hang. It looks related to our test infrastructure and AFAIK there is no
      known usage of this for cubes using cubicweb-celerytask.
      I think we must dig into this bug but I already spent enough time on this, so
      let's move forward and skip this part of the test.
    • Philippe Pepiot's avatar
      Rework test_workflow_group() · 6cc606e5b36d
      Philippe Pepiot authored
      Drop assertion "cwtask.eid in results" which is already implicitly checked by "results[cwtask.eid]"
      Only run a group(success(), success()), which is enough for the scope of this
      test and make it compatible with celery 4 where nested groups are rewrited in a
      single group.
      Wait and test results of all subtasks, not only the first one.
    • Philippe Pepiot's avatar
      Use frozen task id in run_all_tasks() · 09962b2ccb79
      Philippe Pepiot authored
      This code is only used in tests where we check for existence of task_id in database.
      Before running the Task, there is no guarantees that the value of Task.id will
      be used as task_id, this is the purpose of freeze().
      In this particular case Task.id = Task.freeze().id for celery 3.1.25, but this
      is no longer true in celery 4.