問題タブ [apscheduler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - cronタスクを使用したuwsgiWebアプリ?
webpy(webpy.org)を使ってアプリを書きました。このWebアプリの一部は、統計関数のバックグラウンドタスクを繰り返し実行することです。Pythonライブラリを使用APSchedulerしてcronスタイルのスケジュールを実行しました。app.run()開発中はwebpyをスタンドアロンモードで実行させるためです。この設定はうまくいきました。
ただし、デプロイすると、APSchedulerが機能しなくなることがわかりました。展開手順は、この記事にほぼ従っています。私のエントリポイントプログラムは、引き続き正常なスケジューリングログを出力します。ただし、リクエストが受信されない場合、uwsgiは実行中のwebpyアプリを一時停止(スレッドを一時停止)するようです。ページを更新すると、APSchedulerがウェイクアップし、いくつかのWARNING:apscheduler.scheduler:Run time of job "worker (trigger: cron[...], next run at: ..)" was missed by 0:04:36.389705メッセージが出力されます。スケジュールどおりに稼働していません。
私の質問は、uwsgiwebpyアプリをデプロイするときにcronスタイルのタスクをスケジュールするにはどうすればよいですか。uwsgi自体がcronをサポートしているのを見ました。しかし、APSchedulerのようにアプリとどのように組み合わせることができるのでしょうか(または置き換えることができますか)?タスクはアプリのいくつかのモジュールと動的プロパティに依存しているため、スタンドアロンの.pyプログラムに簡単に変換することはできません。
python - NameError:グローバル名'create_engine'が定義されていません[SQLAlchemyJobStoreを作成しようとしたとき]
私はSQLAlchemyJobStoreジョブストアを追加して(そしてそれをdefaultジョブストアに)、そこにいくつかのジョブを保存しようとしています。mysql。という名前のデータベースを持つを実行していますjobstore。
実行中のデータベースにSQLAlchemyJobStoreジョブストアを開こうとする次のプログラムがあります。mysql
上記のコードを実行しようとすると、次のように表示されます。
なるほど"/usr/lib/python2.7/site-packages/APScheduler-2.1.0-py2.7.egg/apscheduler/jobstores/sqlalchemy_store.py"、__init__しようとしているのcreate_engineと失敗している。
ここで何が問題になっていますか?!言い換えれば、どのようにSQLAlchemyJobStore使用を作成APSchedulerし、それらにジョブを正常に保存するのですか?どんな例/コードスニペットも大いに役立ちます!
python - add_date_job()にメソッドを追加して、SQLAlchemyJobStoreジョブストアにジョブを保存できません
問題文:
ジョブストアにジョブを格納するように構成されているメソッド( Test::start())を追加しようとしています。ジョブストアへのジョブの追加は成功しました。しかし、スケジューラーを起動しようとすると、(in )は指定されたオブジェクトのを取得できません[この場合、指定されたオブジェクトは-つまり]です。scheduler.add_date_job()SQLAlchemyJobStoreobj_to_refapscheduler/util.pyref_to_obj()Test::start()<bound method Test.start of <__main__.Test instance at 0xa119a6c>>
ただし、次の場合、同じ操作が正常に機能します。
- その他のジョブストア(fe-
RAMJobStoreこれは、ジョブストアが追加/構成されていない場合のデフォルトです)。 - が
scheduler.add_date_job()他の関数(func以下のコードではfe)で呼び出され、Test::start()(ジョブストアがSQLAlchemyJobStore)[the andforis ]のようなメソッドref_to_obj()ではない場合。同じことを確認するために、いくつかのデバッグを(に)追加しました。obj_to_ref()func<function func at 0xb768ed14>apscheduler/util.py
コードは次のとおりです。
スタックトレースは次のとおりです。
追加したデバッグapscheduler/util.pyは次のとおりです。
以下は、次のデバッグ出力ですTest::start()。
を(fe )ではなく(fe )に変更scheduler.add_date_job()するfunctionfuncmethodTest::start()
以下は、次のデバッグ出力ですfunc()。
私はここで何か間違ったことをしていますか?apscheduler/util.pyまたは、これは関数のバグSQLAlchemyJobStoreですか?
既知の回避策はありますか?!
python - Flask の apscheduler が 2 回実行される
フラスコ アプリケーションで apscheduler を使用しているときに問題が発生しました。
私のview.pyファイルでは、私はこのように書いています
そして、このメソッド test_scheduler() は 5 秒ごとに 2 回実行されます
テスト 1360844314.01 テスト 1360844314.2
python - メソッドのテキスト参照
私が次を持っているとしましょう:
私は次の関数を持っています(https://bitbucket.org/agronholm/apscheduler/src/d2f00d9ac019/apscheduler/util.pyから取得):
上記の関数-obj_to_ref指定された関数オブジェクトへのテキスト参照をref_to_obj返し、指定されたテキスト参照のオブジェクトを返します。たとえば、func関数を試してみましょう。
func関数は正常に動作しています。しかし、のインスタンスでこれらの関数を使用しようとするとclass Test、テキスト参照を取得できませんでした。
指定された入力のobj_to_ref関数はt.TestFuncテキスト__main__:Test.TestFunc表現として作成されますが、同じテキストを使用してオブジェクトを生成することはできません。
質問:
Python次のようなオブジェクトを表現できる方法はありますか
文字列で、文字列からオブジェクトを再構築しますか?
0xb771b28cアドレスを文字列の一部として保存し、このアドレスを逆参照してオブジェクトを再生成することは可能でしょうか?!
python - ある条件でpython Apschedulerを停止する方法
実際にこれでpython APSchedulerを学んでいて、1つの例を試しています
私が追加したスケジューラは以下のようなものです
しかし、このスケジューラーは1 分ごとに開始され、関数fを呼び出します。スケジューラーがこの関数を呼び出すのを停止する方法f は、dict にステータス 'n' のエントリーがない場合、およびステータス 'n ' のエントリーである場合にこのスケジューラーの呼び出しを続行する方法です。口述d。
python - Pythonスクリプトの高度なスケジューリング
私は本当に複雑なことをしようとしています。Windows ボックスを使用して、月~金の午前 9 時~午後 7 時の 30 分ごとにスクリプトを実行し、「休日」と定義する特定の日付をスキップします。Python でこのスクリプト自体を実行したいと思います。「apschedule」を調べましたが、これを行うために必要な適切なオプションが見つからないようです。Python でこれを行うことができない場合、他にどのような解決策を検討できますか?
ところで、現在、私は Python 3.3 を実行していますが、必要に応じてダウングレードするつもりです。
python - apscheduler でログをキャプチャする
apschedulerからジョブ内のログをキャプチャするにはどうすればよいですか?
私は次の仕事を持っていると仮定します
そして聞き手
のメッセージにアクセスするにはどうすればよいjob_listenerですか?
django - 複数のワーカーを実行しているピラミッド Web アプリで、1 つのワーカーだけが apscheduler イベントを起動することを確認してください
ピラミッドで作成され、gunicorn+nginx を介して提供される Web アプリがあります。8 つのワーカー スレッド/プロセスで動作します
仕事が必要だったので、apscheduler を選択しました。これが私たちがそれを起動する方法です
問題は、gunicorn のすべてのワーカー プロセスがスケジューラを選択することです。ファイル ロックを実装しようとしましたが、十分な解決策ではないようです。特定の時点でワーカー プロセスの 1 つだけがスケジュールされたイベントを取得し、他のスレッドが次までそれを取得しないようにするための最良の方法は何でしょうJOB_INTERVALか?
後で apache2+modwsgi に切り替える場合に備えて、このソリューションは mod_wsgi でも機能する必要があります。ウェイトレスである単一プロセス開発サーバーで動作する必要があります。
バウンティ スポンサーからの最新情報
Djangoアプリだけで、OPで説明されているのと同じ問題に直面しています。元の質問の場合、この詳細を追加してもあまり変わらないと確信しています。このため、もう少し可視性を高めるために、この質問にもタグを付けましたdjango。