Flask API çağrıları cron işleriyle zamanlama

0

Soru

Birkaç API'yi çağıran ve çağrıldıktan sonra veritabanını güncelleyen bir işlevim var. İşlevi belirli bir zamanda günlük olarak çalışacak şekilde programlamak istiyorum.

Bu hatayı veren flask_apscheduler ve apscheduler'ı zaten denedim:

Bu genellikle etkin bir HTTP isteğine ihtiyaç duyan işlevleri kullanmaya çalıştığınız anlamına gelir. Bu sorunun nasıl önleneceği hakkında bilgi için sınama belgelerine bakın.

Bu yardımcı olacak getiriyor.

api apscheduler cron flask
2021-11-16 07:42:09
1

En iyi cevabı

0

Yapmalısın:

  • Kodu, flask uygulamanızı tanımladığınız yere gönderin.
  • Uygulamaya nasıl erişmeye çalıştığınızı belirtin.
  • API'leri nasıl çağırıyorsun.
  • Bu API'ler 3. taraf veya planınızın bir parçası olsun.

Ancak, bu muhtemelen bir bağlam sorunudur. Daha önce SQLAlchemy ile benzer bir şeye rastladım. App_context kullanarak veya içe aktararak uygulamanıza bir şekilde erişmeniz gerekir current_app şişeden ve yapılandırmaya erişiliyor.

  1. İşlevinizin kullanıldığı uygulamayı içe aktardığınızı varsayarsak, bunu deneyin:

    with app.app_context():
        # call your function here
    

    Daha fazla bilgi için bu belgeye bakın: Şişe Belgeleri

  2. Deneyebileceğiniz başka bir yaklaşım, uygulama yapılandırmalarınızı bir config sınıfı nesnesinden geçirmektir.
    Zamanlamak istediğiniz işleri tanımlayabilir ve içindeki işlevinize bir başvuru iletebilirsiniz.
    Bu örneği Github'daki flask-apscheduler deposundan kontrol edin.

2021-11-19 13:46:07

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................