LoopingCallによってスケジュールされた関数の呼び出し数を設定するにはどうすればよいですか?

s9527

コードのスケルトンは次のとおりです。

from twisted.internet import reactor
from twisted.internet.task import LoopingCall

def do_something():
    print "Doing something..."

def process_result():
    print "Processing result..."

def loop():
    LoopingCall(do_something).start(1)

reactor.callWhenRunning(loop)
reactor.run()

私のコードではdo_something、100回実行たいのですが、その後、process_resultその名前が示すとおりに実行するように呼び出します。

ドキュメントで、を見つけましたがwithCount、「最後に呼び出されてから発生したはずの」と「カウントは通常1」で混乱していました。LoopingCall関数を一度呼び出すために使用しますか?ポイントは何ですか?私はそれを誤解したと思いますが、正しい説明は何ですか?)

知りたいのですがwithCount、正しいものを使用するのですか?はいの場合、誰かが具体的な例を提供できますか?

ランバ

withCountLoopingCallが反復を見逃したときに役立つ情報を提供します。たとえば、間隔が1で、関数に5秒かかる場合、関数を呼び出す必要がある回数は5回になります。ただし、この例では、関数はほぼ瞬時に返されます(遅延されません)。常に1になります。

from twisted.internet import reactor
from twisted.internet.task import LoopingCall

def do_something(count):
    print "Doing something..." + str(count)

def process_result():
    print "Processing result..."

def loop():
    LoopingCall.withCount(do_something).start(1)

reactor.callWhenRunning(loop)
reactor.run()

関数が呼び出された回数を確認しlc.stop、指定された回数に達したときに使用する必要があります。に余分なロジックを導入したくない場合はdo_something、ラッパークラスを作成できます。

from twisted.internet import reactor
from twisted.internet.task import LoopingCall

def do_something():
    print "Doing something..."

def process_result():
    print "Processing result..."

def loop():
    LoopingCallWithCounter(5, do_something).lc.start(1)

class LoopingCallWithCounter:
    def __init__(self, count, f, *a, **kw):
        self.i = 0
        def wrapper():
            if self.i >= count:
                self.lc.stop()
            else:
                f(*a, **kw)
                self.i += 1
        self.lc = LoopingCall(wrapper)

reactor.callWhenRunning(loop)
reactor.run()

最後に、が呼び出さlc.startれたときに遅延を返すため、後処理を行うためにlc.stop使用できますaddCallback(process_result)process_result引数を取る必要があることに注意してください。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

selectで呼び出された関数によって返されたテーブルをマージするにはどうすればよいですか?

分類Dev

requirejsのモジュール内で定義された関数を自分のページから呼び出すにはどうすればよいですか?

分類Dev

Herokuスケジューラを使用して呼び出されるrakeタスクに引数を渡すにはどうすればよいですか?

分類Dev

PowerShellモジュール関数がC#アプリケーションによって呼び出されたのか、コマンドラインから呼び出されたのかを確認するにはどうすればよいですか?

分類Dev

Lua C API関数がクラスメンバーとして呼び出されたのか、それともテーブルから関数として呼び出されたのかを判断するにはどうすればよいですか?

分類Dev

関数呼び出し元によって提供された引数を受け入れるデコレータを設定するにはどうすればよいですか?

分類Dev

scikitlearnによってスケジュールされたジョブの数を印刷するにはどうすればよいですか?

分類Dev

Openerp-特定のビューが呼び出されるたびに実行する関数を呼び出すにはどうすればよいですか?

分類Dev

関数が呼び出されるたびに、関数の呼び出し場所にアクセスするにはどうすればよいですか?

分類Dev

インスタンスによって呼び出されるコールバック関数からインスタンスプロパティを設定するにはどうすればよいですか?

分類Dev

他の関数が呼び出された回数に基づいてスイッチ関数を操作するにはどうすればよいですか?

分類Dev

AWSCDKによって作成されたPythonLambda関数に外部モジュールをインストールするにはどうすればよいですか?

分類Dev

動的に呼び出している関数でスローされた例外をキャッチするにはどうすればよいですか?

分類Dev

グローバル環境で定義された関数に、呼び出し元の関数の環境で定義された変数にアクセスさせるにはどうすればよいですか?

分類Dev

関数内で初めて呼び出されたときにのみ変数を定義するにはどうすればよいですか?

分類Dev

別の変数(オブジェクト)で指定された引数を使用して関数を呼び出すにはどうすればよいですか?

分類Dev

呼び出されたモジュール内からインスタンス変数を更新するにはどうすればよいですか?

分類Dev

Bokeh TextInputウィジェットのコールバック関数呼び出しによって返された結果をキャプチャするにはどうすればよいですか?

分類Dev

Cのループで関数として呼び出されているchar画像を削除するにはどうすればよいですか?

分類Dev

%prunでリストされた関数の呼び出しを担当する関数を特定するにはどうすればよいですか?

分類Dev

特定の関数が呼び出されたときに関数を呼び出す関数を作成するにはどうすればよいですか?

分類Dev

Pythonソースコードで使用されるすべての関数とAPI呼び出しを抽出するにはどうすればよいですか?

分類Dev

現在のモジュールを設定して、rspecでモジュールメソッドを呼び出すにはどうすればよいですか?

分類Dev

Goで複数の値を返す関数呼び出しによってインスタンス化された複数の変数を宣言するにはどうすればよいですか?

分類Dev

関数が再度呼び出された場合、関数の最初の呼び出しの実行を停止するにはどうすればよいですか?

分類Dev

nodejsのmssqlパッケージを使用してSQLServerスカラー関数を呼び出すにはどうすればよいですか?

分類Dev

関数の呼び出しで例外がスローされた場合に処理を続行するにはどうすればよいですか?

分類Dev

Angularのコントローラーによってファクトリ関数が呼び出されているかどうかを確認するためのKarmaテストを作成するにはどうすればよいですか?

分類Dev

PowershellStart-jobでモジュール関数を呼び出すにはどうすればよいですか

Related 関連記事

  1. 1

    selectで呼び出された関数によって返されたテーブルをマージするにはどうすればよいですか?

  2. 2

    requirejsのモジュール内で定義された関数を自分のページから呼び出すにはどうすればよいですか?

  3. 3

    Herokuスケジューラを使用して呼び出されるrakeタスクに引数を渡すにはどうすればよいですか?

  4. 4

    PowerShellモジュール関数がC#アプリケーションによって呼び出されたのか、コマンドラインから呼び出されたのかを確認するにはどうすればよいですか?

  5. 5

    Lua C API関数がクラスメンバーとして呼び出されたのか、それともテーブルから関数として呼び出されたのかを判断するにはどうすればよいですか?

  6. 6

    関数呼び出し元によって提供された引数を受け入れるデコレータを設定するにはどうすればよいですか?

  7. 7

    scikitlearnによってスケジュールされたジョブの数を印刷するにはどうすればよいですか?

  8. 8

    Openerp-特定のビューが呼び出されるたびに実行する関数を呼び出すにはどうすればよいですか?

  9. 9

    関数が呼び出されるたびに、関数の呼び出し場所にアクセスするにはどうすればよいですか?

  10. 10

    インスタンスによって呼び出されるコールバック関数からインスタンスプロパティを設定するにはどうすればよいですか?

  11. 11

    他の関数が呼び出された回数に基づいてスイッチ関数を操作するにはどうすればよいですか?

  12. 12

    AWSCDKによって作成されたPythonLambda関数に外部モジュールをインストールするにはどうすればよいですか?

  13. 13

    動的に呼び出している関数でスローされた例外をキャッチするにはどうすればよいですか?

  14. 14

    グローバル環境で定義された関数に、呼び出し元の関数の環境で定義された変数にアクセスさせるにはどうすればよいですか?

  15. 15

    関数内で初めて呼び出されたときにのみ変数を定義するにはどうすればよいですか?

  16. 16

    別の変数(オブジェクト)で指定された引数を使用して関数を呼び出すにはどうすればよいですか?

  17. 17

    呼び出されたモジュール内からインスタンス変数を更新するにはどうすればよいですか?

  18. 18

    Bokeh TextInputウィジェットのコールバック関数呼び出しによって返された結果をキャプチャするにはどうすればよいですか?

  19. 19

    Cのループで関数として呼び出されているchar画像を削除するにはどうすればよいですか?

  20. 20

    %prunでリストされた関数の呼び出しを担当する関数を特定するにはどうすればよいですか?

  21. 21

    特定の関数が呼び出されたときに関数を呼び出す関数を作成するにはどうすればよいですか?

  22. 22

    Pythonソースコードで使用されるすべての関数とAPI呼び出しを抽出するにはどうすればよいですか?

  23. 23

    現在のモジュールを設定して、rspecでモジュールメソッドを呼び出すにはどうすればよいですか?

  24. 24

    Goで複数の値を返す関数呼び出しによってインスタンス化された複数の変数を宣言するにはどうすればよいですか?

  25. 25

    関数が再度呼び出された場合、関数の最初の呼び出しの実行を停止するにはどうすればよいですか?

  26. 26

    nodejsのmssqlパッケージを使用してSQLServerスカラー関数を呼び出すにはどうすればよいですか?

  27. 27

    関数の呼び出しで例外がスローされた場合に処理を続行するにはどうすればよいですか?

  28. 28

    Angularのコントローラーによってファクトリ関数が呼び出されているかどうかを確認するためのKarmaテストを作成するにはどうすればよいですか?

  29. 29

    PowershellStart-jobでモジュール関数を呼び出すにはどうすればよいですか

ホットタグ

アーカイブ