PythonrqワーカータスクのエラーをSentryに伝播する方法

M.ヴォルフ

Sentryエラー追跡機能を備えたFlaskアプリがあります。ここで、を使用していくつかのタスクを作成しましたrqが、それらのエラーはSentryIssuesストリームに表示されません。フィルタリングされた問題の数が増えないため、問題が除外されていないことがわかります。エラーはに表示されheroku logs --tailます。

私は労働者を rq worker homework-fetcher -c my_app.rq_sentry

my_app/rq_sentry.py

import os

import sentry_sdk
from sentry_sdk.integrations.rq import RqIntegration

dsn = os.environ["SENTRY_DSN"]
print(dsn) # I confirmed this appears in logs, so it is initialized

sentry_sdk.init(dsn=dsn, integrations=[RqIntegration()])

何か問題がありますか、それともこれを確認する完全なアプリをセットアップしてバグレポートを公開する必要がありますか?


また、私は(少しサイド-)質問があります:

アプリ自体の歩哨設定に含める必要がRqIntegrationありRedisIntegrationますか?これらの利点は何ですか?

助けてくれてありがとう


編集1:タスクをスケジュールするmy_app.nonexistent_moduleと、ワーカーは正しくエラーを発生させますが、これは歩哨によって捕らえられます。
だから私は私の質問を変えるかもしれません:タスクの例外rq workerをSentryに伝播する方法は

M.ヴォルフ

それで7ヶ月後、私はそれを理解しました。

Flaskアプリは、アプリのファクトリパターンを使用します。次に、ワーカーで、アプリと同じ方法でデータベースにアクセスする必要があります。そのためには、アプリのコンテキストが必要です。だから私from app_factory import create_app、そしてcreate_app().app_context().push()これが問題です。ファクトリ関数では、アプリ自体に対してSentryも初期化するため、Sentryが2回初期化されます。1回はアプリ用、もう1回はワーカー用です。ワーカータスクファイル(構成ではない)でアプリの初期化を呼び出したという事実と相まって、おそらく正しい歩哨の初期化をオーバーライドし、タスクが正しくログに記録されないようにしました

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ターミナルの外にエラーコードを伝播する方法は?

分類Dev

gRPCエラーを適切に伝播する方法Spring-boot

分類Dev

httpProviderresponseErrorインターセプターでエラーを伝播する方法

分類Dev

データ検証を他の行に伝播する方法は?

分類Dev

サブプロセス内のサブプロセス。エラー時に出力を伝播する方法は?

分類Dev

クラスター全体でサービスメッシュに着信するヘッダーを伝播する

分類Dev

catchError()を介してエラーを適切に伝播する方法は?

分類Dev

catchError()を介してエラーを適切に伝播する方法は?

分類Dev

vuexアクションからvueコンポーネントにエラーを伝播する方法は?

分類Dev

最急降下法による逆伝播が、各フォワードパス後のエラーをどのように表すか

分類Dev

基本クラスは例外をスローします。伝播する方法は?

分類Dev

Rのカスタムエラーバー-遺伝子発現の伝播エラー

分類Dev

結果またはエラーの伝播中にCompletableFutureコールバックを呼び出す方法は?

分類Dev

bash:プロセス置換でエラーを伝播する方法は?

分類Dev

Bluebird-ネストされたpromiseでエラーを伝播する方法

分類Dev

Rustのスレッドのクロージャ内からエラーを伝播する

分類Dev

タイプスクリプトでカリー化するときに型推論を逆伝播する

分類Dev

Promiseエラーの伝播

分類Dev

ニューラルネットワークの逆伝播アルゴリズムがXORトレーニングパターンでスタックする

分類Dev

ラムダ関数を介してsnakemakeワイルドカードを伝播する方法

分類Dev

ローカルブランチの削除を1つのステップでリモートに伝播する方法-git、github

分類Dev

ニューラルネットワークにおけるバイアスの逆伝播

分類Dev

yfinanceエラーを伝播させる

分類Dev

カスタムコンポーネント内のNgbDatePicker、バリデーターとスタイルを伝播する方法は?

分類Dev

エラーを伝播する正しい方法は何ですか?

分類Dev

特定のクエリパラメータをワニスに保持する方法

分類Dev

コンテキストをルーターコンポーネントに伝播する方法。Reactjs

分類Dev

iscsiイニシエーターの伝播を変更するにはどうすればよいですか?

分類Dev

ContinueWithから無限ループタスクの呼び出しコンテキストに例外を伝播する方法

Related 関連記事

  1. 1

    ターミナルの外にエラーコードを伝播する方法は?

  2. 2

    gRPCエラーを適切に伝播する方法Spring-boot

  3. 3

    httpProviderresponseErrorインターセプターでエラーを伝播する方法

  4. 4

    データ検証を他の行に伝播する方法は?

  5. 5

    サブプロセス内のサブプロセス。エラー時に出力を伝播する方法は?

  6. 6

    クラスター全体でサービスメッシュに着信するヘッダーを伝播する

  7. 7

    catchError()を介してエラーを適切に伝播する方法は?

  8. 8

    catchError()を介してエラーを適切に伝播する方法は?

  9. 9

    vuexアクションからvueコンポーネントにエラーを伝播する方法は?

  10. 10

    最急降下法による逆伝播が、各フォワードパス後のエラーをどのように表すか

  11. 11

    基本クラスは例外をスローします。伝播する方法は?

  12. 12

    Rのカスタムエラーバー-遺伝子発現の伝播エラー

  13. 13

    結果またはエラーの伝播中にCompletableFutureコールバックを呼び出す方法は?

  14. 14

    bash:プロセス置換でエラーを伝播する方法は?

  15. 15

    Bluebird-ネストされたpromiseでエラーを伝播する方法

  16. 16

    Rustのスレッドのクロージャ内からエラーを伝播する

  17. 17

    タイプスクリプトでカリー化するときに型推論を逆伝播する

  18. 18

    Promiseエラーの伝播

  19. 19

    ニューラルネットワークの逆伝播アルゴリズムがXORトレーニングパターンでスタックする

  20. 20

    ラムダ関数を介してsnakemakeワイルドカードを伝播する方法

  21. 21

    ローカルブランチの削除を1つのステップでリモートに伝播する方法-git、github

  22. 22

    ニューラルネットワークにおけるバイアスの逆伝播

  23. 23

    yfinanceエラーを伝播させる

  24. 24

    カスタムコンポーネント内のNgbDatePicker、バリデーターとスタイルを伝播する方法は?

  25. 25

    エラーを伝播する正しい方法は何ですか?

  26. 26

    特定のクエリパラメータをワニスに保持する方法

  27. 27

    コンテキストをルーターコンポーネントに伝播する方法。Reactjs

  28. 28

    iscsiイニシエーターの伝播を変更するにはどうすればよいですか?

  29. 29

    ContinueWithから無限ループタスクの呼び出しコンテキストに例外を伝播する方法

ホットタグ

アーカイブ