SessionSubmit

SessionSubmit[expr]

現行セッションでの expr の評価のために,非同期タスクを送信する.

SessionSubmit[ScheduledTask[expr,spec]]

spec で定義されたスケジュールに従って現行セッションで expr を評価するために,タスクを送信する.

詳細とオプション

  • SessionSubmit[]は作成したタスクを表すTaskObject[]を返す.
  • spec の使用可能な値はScheduledTaskでサポートされる値である.
  • 次は使用可能なオプションである.
  • HandlerFunctions<||>生成されたイベントをどのように扱うか
    HandlerFunctionsKeysAutomaticハンドラ関数に渡すパラメータ
    MethodAutomaticいつタスクの実行を許可するかをどのように決定するか
  • 次はMethodオプションの可能な設定である.
  • "Idle"セッションがユーザの入力を待っている間にのみ実行
    Automatic計算中を含む,任意のときに実行
  • タスクの実行中に,次のイベントが生成される可能性がある.
  • "TaskStarted"タスクが開始された
    "ScheduleTriggered"スケジュールされたタスクの評価が始まっている
    "MessageGenerated"評価がメッセージを生成した
    "PrintOutputGenerated"評価が出力を生成した
    "ResultReceived"評価が結果を生成した
    "ScheduleExecuted"スケジュールされたタスクの評価が実行された
    "TaskStatusChanged"タスクのステータスが変わった
    "TaskFinished"タスクが完全に終了した
    "TaskRemoved"タスクが削除されている
  • HandlerFunctions-><|,"eventi"->fi,|>と指定すると,fi[assoc]eventi が生成されるたびに評価される.assoc の要素のキーはHandlerFunctionsKeysの設定で指定される.
  • 次は,HandlerFunctionsKeysが指定する可能性があるキーである.
  • "EvaluationExpression"評価されている式
    "EvaluationResult"評価結果
    "MessageOutput"生成されたメッセージのコンテンツ
    "PrintOutput"生成された出力のコンテンツ
    "Task"タスクを表すオブジェクト
    "TaskStatus"タスクのステータス
    "TaskType"タスクのタイプ
    "TaskUUID"一意的なタスクの識別子
    "EventName"処理されているイベントの名前
  • 評価する式はHoldに囲まれて返される.
  • スケジュールされたタスクについては,次の追加的なキーを指定することができる.
  • "Schedule"タスクのスケジュール指定
    "RunInterval"タスクの実行間隔
    "PreviousRunCount"それまでにタスクが実行された回数
    "RemainingRunCount"この後タスクが実行されなければならない回数
    "TotalRunCount"スケジュールされているタスクの実行総回数
    "NextScheduledTime"タスクの次回の実行スケジュール
  • SessionSubmitによって送信されたタスクは,現行のWolfram言語セッションで実行され,そのセッションの全変数とその他の状態にアクセスすることができる.
  • タスクは,システムが入力を待っているときおよびその他の評価の最中に,先制的に実行される.
  • exprScheduledTask式ではないなら,SessionSubmit[expr]は,事実上SessionSubmit[ScheduledTask[expr,{Quantity[1,"Seconds"],1}]]である.つまり,expr は1度しか評価されない.

例題

すべて開くすべて閉じる

  (10)

メッセージダイアログを表示するタスクを作る:

このタスクは現行セッションで実行される:

2秒後にメッセージダイアログを表示するタスクを作る:

Quantityオブジェクトを使って時間を指定する:

タスクの終了後に評価結果を表示する:

評価中に生成されたメッセージを捉える:

メッセージ出力を通常のメッセージのようにフォーマットする:

評価からPrint出力を捉える:

タスクについての情報は,評価中の式で使用することができる:

タスクに関する情報は,イベントハンドラで使用することができる:

タスクのステータスが変わったときに通知があるようにする:

考えられる問題  (1)

SessionSubmitによって開始されたタスクは,「Dynamicの高度な機能」にあるように,式をプリエンプティブに評価する.Pauseあるいは実行が長時間になる評価がプリエンプティブに行われると,評価が終了するまでカーネルがロックされたようにあるいはフリーズしているように見えることがある.

以下で評価器が定期的に3秒間停止して,ロックされたまたはビジーなカーネル効果を出す:

タスクを削除して評価器を正常な状態に戻す:

同期(メイン)評価スレッドで評価されたPauseではプリエンプティブな評価が実行できる:

Wolfram Research (2017), SessionSubmit, Wolfram言語関数, https://reference.wolfram.com/language/ref/SessionSubmit.html (2019年に更新).

テキスト

Wolfram Research (2017), SessionSubmit, Wolfram言語関数, https://reference.wolfram.com/language/ref/SessionSubmit.html (2019年に更新).

CMS

Wolfram Language. 2017. "SessionSubmit." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/SessionSubmit.html.

APA

Wolfram Language. (2017). SessionSubmit. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SessionSubmit.html

BibTeX

@misc{reference.wolfram_2024_sessionsubmit, author="Wolfram Research", title="{SessionSubmit}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/SessionSubmit.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_sessionsubmit, organization={Wolfram Research}, title={SessionSubmit}, year={2019}, url={https://reference.wolfram.com/language/ref/SessionSubmit.html}, note=[Accessed: 21-November-2024 ]}