2016-08-25 17 views
0

HerokuのDjangoサイトでCeleryを正常に使用していますが、以下のエラーが発生し始めています。ポストグルに問題があるように見えますが、問題を抱えているコードではなく、セロリであるため、修正方法はわかりません。SSL SYSCALLエラー:ポストグルとセロリのHerokuのファイル記述子が正しくありません

私はブローカーとしてCloudAMPQを使用していて、私のDjangoの設定が含まれます:

CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' 

はここでHerokuのログからトレースバックです:

Traceback (most recent call last): 
    File "/app/.heroku/python/lib/python3.5/site-packages/kombu/utils/__init__.py", line 323, in __get__ 
    return obj.__dict__[self.__name__] 
KeyError: 'scheduler' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
psycopg2.OperationalError: SSL SYSCALL error: Bad file descriptor 


The above exception was the direct cause of the following exception: 

Traceback (most recent call last): 
    File "/app/.heroku/python/lib/python3.5/site-packages/billiard/process.py", line 292, in _bootstrap 
    self.run() 
    File "/app/.heroku/python/lib/python3.5/site-packages/celery/beat.py", line 553, in run 
    self.service.start(embedded_process=True) 
    File "/app/.heroku/python/lib/python3.5/site-packages/celery/beat.py", line 470, in start 
    humanize_seconds(self.scheduler.max_interval)) 
    File "/app/.heroku/python/lib/python3.5/site-packages/kombu/utils/__init__.py", line 325, in __get__ 
    value = obj.__dict__[self.__name__] = self.__get(obj) 
    File "/app/.heroku/python/lib/python3.5/site-packages/celery/beat.py", line 512, in scheduler 
    return self.get_scheduler() 
    File "/app/.heroku/python/lib/python3.5/site-packages/celery/beat.py", line 507, in get_scheduler 
    lazy=lazy) 
    File "/app/.heroku/python/lib/python3.5/site-packages/celery/utils/imports.py", line 53, in instantiate 
    return symbol_by_name(name)(*args, **kwargs) 
    File "/app/.heroku/python/lib/python3.5/site-packages/djcelery/schedulers.py", line 151, in __init__ 
    Scheduler.__init__(self, *args, **kwargs) 
    File "/app/.heroku/python/lib/python3.5/site-packages/celery/beat.py", line 185, in __init__ 
    self.setup_schedule() 
    File "/app/.heroku/python/lib/python3.5/site-packages/djcelery/schedulers.py", line 158, in setup_schedule 
    self.install_default_entries(self.schedule) 
    File "/app/.heroku/python/lib/python3.5/site-packages/djcelery/schedulers.py", line 251, in schedule 
    self._schedule = self.all_as_schedule() 
    File "/app/.heroku/python/lib/python3.5/site-packages/djcelery/schedulers.py", line 164, in all_as_schedule 
    for model in self.Model.objects.enabled(): 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/models/query.py", line 258, in __iter__ 
    self._fetch_all() 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/models/query.py", line 1074, in _fetch_all 
    self._result_cache = list(self.iterator()) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/models/query.py", line 52, in __iter__ 
    results = compiler.execute_sql() 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/models/sql/compiler.py", line 848, in execute_sql 
    cursor.execute(sql, params) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/utils.py", line 95, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise 
    raise value.with_traceback(tb) 
    File "/app/.heroku/python/lib/python3.5/site-packages/django/db/backends/utils.py", line 64, in execute 
    return self.cursor.execute(sql, params) 
django.db.utils.OperationalError: SSL SYSCALL error: Bad file descriptor 

答えて

0

私は今、問題を解決してきました。..過去に内部サーバーエラーが発生した私のDjangoコードがありました.Djangoの起動の早い段階で、モデルを作成した移行が実行される前にモデルにアクセスしようとしていたと思います。

私はそれを解決しましたが、これらの「SSL SYSCALLエラー」がほぼ同じ時期に始まったことに気付きました。だから私はその行のコードを削除し、セロリが再び起動しました。

これは偶然かもしれません。そして、私はなぜこの固定されたものを理解していない。

理想的には、上記のエラーが実際にはの意味はを意味していますので、今後このようなことを修正するチャンスがあると思います。

関連する問題