My ecs fargate celery beat container is running well during some hours after deployment.
But some times later, error raised like below
Traceback (most recent call last):
File "/usr/local/lib/python3.9/shelve.py", line 111, in __getitem__
value = self.cache[key]
KeyError: 'entries'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/celery/apps/beat.py", line 105, in start_scheduler
service.start()
File "/usr/local/lib/python3.9/site-packages/celery/beat.py", line 645, in start
interval = self.scheduler.tick()
File "/usr/local/lib/python3.9/site-packages/celery/beat.py", line 341, in tick
not self.schedules_equal(self.old_schedulers, self.schedule)):
File "/usr/local/lib/python3.9/site-packages/celery/beat.py", line 593, in get_schedule
return self._store['entries']
File "/usr/local/lib/python3.9/shelve.py", line 113, in __getitem__
f = BytesIO(self.dict[key.encode(self.keyencoding)])
KeyError: b'entries'
I thought supervisord to autorestart but my flask container and celerybeat container is separated. So it's difficult to use supervisor.
Are there way to auto restart ecs container? or how to solve KeyError: b'entries'?
I doubted celerybeat-schedule file for scheduler db. But each ecs deployment new celerybeat-schedule is created. So it is not matter I think.
Help me. Thank you.