[解決済み] asyncioで関数を定期的に実行するにはどうしたらいいですか?
2023-05-26 04:01:42
質問
私は
tornado
から
asyncio
が見つからない、そして
asyncio
に相当する
tornado
's
PeriodicCallback
. (A
PeriodicCallback
は2つの引数を取ります: 実行する関数と、呼び出しの間のミリ秒数です)。
-
にそのような等価なものがあるのでしょうか?
asyncio
? -
もしそうでなければ、これを実装するのに一番きれいな方法は何でしょうか。
RecursionError
を取得するリスクを負うことなく、これを実装する最もきれいな方法は何でしょうか?
どのように解決するのですか?
Pythonのバージョンが3.5以下の場合。
import asyncio
@asyncio.coroutine
def periodic():
while True:
print('periodic')
yield from asyncio.sleep(1)
def stop():
task.cancel()
loop = asyncio.get_event_loop()
loop.call_later(5, stop)
task = loop.create_task(periodic())
try:
loop.run_until_complete(task)
except asyncio.CancelledError:
pass
Python 3.5以上の場合。
import asyncio
async def periodic():
while True:
print('periodic')
await asyncio.sleep(1)
def stop():
task.cancel()
loop = asyncio.get_event_loop()
loop.call_later(5, stop)
task = loop.create_task(periodic())
try:
loop.run_until_complete(task)
except asyncio.CancelledError:
pass
関連
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] print関数の出力をフラッシュする(pythonの出力をバッファリング解除する)にはどうすればよいですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonで複数のコンストラクタを持つためのクリーンでPythonicな方法は何ですか?
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] "Fire and forget" python async/await
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] データフレームをソートした後にインデックスを更新する
-
[解決済み] 値で列挙名を取得する [重複]。
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] virtualenv の `--no-site-packages` オプションを元に戻す。
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Pythonの辞書にあるスレッドセーフについて