Open mehmetozturk4705 opened 1 year ago
Celery worker tarafında değişiklik olduğu için infra üzerindeki değişiklikleri de göz önüne almakta fayda var. Prod ortamında celerynin nasıl ayağa kaldırıldığını bilemiyorum.
https://github.com/acikkaynak/deprem-yardim-backend/pull/131#discussion_r1100713376 SCRAM problemi ayrıca ilgili PRda da çözülmüş README üzerindeki değişiklikler ilgisiz olabilir.
PR kapsamını CONN_MAX_AGE=600
parametresini settings.py dosyaları içerisine eklenmesi ve docker-compose.yml içerisindeki depends_on: eklemeleri ile daraltılsa daha iyi olacaktır.
Neden mevcuttaki bir dosya adını değiştirmeye ihtiyacımız olsun ki? (Tabii buna bağlı her yerde bu bağımlıklarında güncellenmesi zorunluluğu oluşmuş.)
PR kapsamını
CONN_MAX_AGE=600
parametresini settings.py dosyaları içerisine eklenmesi ve docker-compose.yml içerisindeki depends_on: eklemeleri ile daraltılsa daha iyi olacaktır.Neden mevcuttaki bir dosya adını değiştirmeye ihtiyacımız olsun ki? (Tabii buna bağlı her yerde bu bağımlıklarında güncellenmesi zorunluluğu oluşmuş.)
Docker üzerinde çalıştırdığımda aşağıdaki hatayı aldım. Anladığım kadarıyla dosya ismini önce çözdüğü durumda (yani PYTHONPATH içerisinde modüller öncelikli geldiği durumda) celery.py dosyasını celery paketinden önce çözüyor ve circular importa düşüyor. Bunun bir sorun olmadığını düşünürseniz ilgili değişiklikleri geri alabilirim fakat bu bana yine de tehlikeli geliyor, test etmediğimiz bir deployment senaryosunda off olmasındansa şimdiden ilgili değişiklikleri yapmak mantıklı geldi.
trquake-app | PostgreSQL is available
trquake-app | INFO 2023-02-09 09:58:07,643 autoreload 17 274910746560 Watching for file changes with StatReloader
trquake-app | Performing system checks...
trquake-app |
trquake-app | Exception in thread django-main-thread:
trquake-app | Traceback (most recent call last):
trquake-app | File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
trquake-app | self.run()
trquake-app | File "/usr/local/lib/python3.8/threading.py", line 870, in run
trquake-app | self._target(*self._args, **self._kwargs)
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/utils/autoreload.py", line 64, in wrapper
trquake-app | fn(*args, **kwargs)
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 134, in inner_run
trquake-app | self.check(display_num_errors=True)
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 475, in check
trquake-app | all_issues = checks.run_checks(
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/core/checks/registry.py", line 88, in run_checks
trquake-app | new_errors = check(app_configs=app_configs, databases=databases)
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/core/checks/urls.py", line 14, in check_url_config
trquake-app | return check_resolver(resolver)
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/core/checks/urls.py", line 24, in check_resolver
trquake-app | return check_method()
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/urls/resolvers.py", line 494, in check
trquake-app | for pattern in self.url_patterns:
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 57, in __get__
trquake-app | res = instance.__dict__[self.name] = self.func(instance)
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/urls/resolvers.py", line 715, in url_patterns
trquake-app | patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 57, in __get__
trquake-app | res = instance.__dict__[self.name] = self.func(instance)
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/urls/resolvers.py", line 708, in urlconf_module
trquake-app | return import_module(self.urlconf_name)
trquake-app | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
trquake-app | return _bootstrap._gcd_import(name[level:], package, level)
trquake-app | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
trquake-app | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
trquake-app | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
trquake-app | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
trquake-app | File "<frozen importlib._bootstrap_external>", line 843, in exec_module
trquake-app | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
trquake-app | File "/app/trquake/urls.py", line 25, in <module>
trquake-app | path("feeds/", include("feeds.urls")),
trquake-app | File "/usr/local/lib/python3.8/site-packages/django/urls/conf.py", line 38, in include
trquake-app | urlconf_module = import_module(urlconf_module)
trquake-app | File "/usr/local/lib/python3.8/importlib/__init__.py", line 127, in import_module
trquake-app | return _bootstrap._gcd_import(name[level:], package, level)
trquake-app | File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
trquake-app | File "<frozen importlib._bootstrap>", line 991, in _find_and_load
trquake-app | File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
trquake-app | File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
trquake-app | File "<frozen importlib._bootstrap_external>", line 843, in exec_module
trquake-app | File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
trquake-app | File "/app/applications/feeds/urls.py", line 9, in <module>
trquake-app | from feeds.views.entries import EntryViewSet, BulkEntryView
trquake-app | File "/app/applications/feeds/views/entries.py", line 11, in <module>
trquake-app | from feeds.tasks import write_bulk_entries
trquake-app | File "/app/applications/feeds/tasks.py", line 10, in <module>
trquake-app | from trquake.celery import app
trquake-app | File "/app/trquake/celery.py", line 2, in <module>
trquake-app | from celery import Celery
trquake-app | File "/app/trquake/celery.py", line 2, in <module>
trquake-app | from celery import Celery
trquake-app | ImportError: cannot import name 'Celery' from partially initialized module 'celery' (most likely due to a circular import) (/app/trquake/celery.py)
@mehmetozturk4705 Dün master branch üzerinden stabil şekilde uygulamayı çalıştırabilmiştim, hatta şimdi mesajınıza istinaden emin olmak adına tekrar denedim ve uygulama Docker üzerinde stabil çalışıyor (loglarını aşağıya da ekledim). Bu kapsamda değerlendirince sizin yaşadığınız sorununun başka bir nedenden oluştuğunu düşünüyorum.
2023-02-09 13:36:14 Operations to perform:
2023-02-09 13:36:14 Apply all migrations: admin, auth, authtoken, contenttypes, feeds, sessions, tweets
2023-02-09 13:36:14 Running migrations:
2023-02-09 13:36:14 No migrations to apply.
2023-02-09 13:36:14
2023-02-09 13:36:14 0 static files copied to '/app/statics/root', 165 unmodified.
2023-02-09 13:36:21 Performing system checks...
2023-02-09 13:36:21
2023-02-09 13:36:21 System check identified no issues (0 silenced).
2023-02-09 13:36:22 February 09, 2023 - 10:36:22
2023-02-09 13:36:22 Django version 4.1.6, using settings 'trquake.settings.development'
2023-02-09 13:36:22 Starting development server at http://0.0.0.0:8000/
2023-02-09 13:36:22 Quit the server with CONTROL-C.
Description
Added CONN_MAX_AGE for better postgres pooling.
There are also changes which will be enhancing development environment.
Related Issue
Motivation and Context
Increasing the performance of DB is main consideration when scaling up the the request actor count.
Screenshots (if appropriate):