intra-mart Accel Platform 非同期プログラミングガイド 第3版 2019-04-01

概要

非同期処理機能はさまざまな機能やアプリケーションから構成されています。

非同期処理機能の全体的な流れを非同期処理機能の流れに、全体の処理概要のシーケンスを非同期処理機能のシーケンスに示します。 非同期処理機能の仕様書も参照してください。

Flow of asynchronous functionality

非同期処理機能の流れ

Sequence of asynchronous functionality

非同期処理機能のシーケンス

非同期処理機能を利用する場合、開発者は以下のものを実装する必要があります。

  • タスク
  • タスク登録アプリケーション

アプリケーションの開発は以下のような流れです。

  1. ビジネスロジックの範囲を決定
  2. ビジネスロジックで必要となるパラメータを決定
  3. タスクの実装
  4. タスクメッセージを登録するアプリケーションを実装

ビジネスロジックの範囲を決定

非同期でビジネスロジックを処理する場合、以下の点について注意する必要があります。

  • 非同期では、ビジネスロジックは呼び出し側とは異なるサーバで処理が行われる場合があります。
  • タスクメッセージ登録時のプログラム中で何らかの値をメモリ内の共有領域に保存しても、実際のビジネスロジック側ではその値を利用できません。 何らかの情報の受け渡しを行う場合、リモート環境からであっても取得できるような方法を開発者が用意する必要があります。

タスクメッセージの登録時とタスクのビジネスロジック実行時の間で情報を受け渡す方法として、以下のような方法があります。

  • パラメータ

    タスクメッセージの登録時に独自のパラメータを設定することができます。

  • コンテキスト

    タスクメッセージの登録時のコンテキストは非同期を行うときにも引き継がれます。 そのため、コンテキストを介して情報を受け渡すことができます。

上記以外にも、ストレージサービスやデータベースを使うなどの方法もあります。

ビジネスロジックで必要となるパラメータを決定

タスクメッセージの登録時に独自のパラメータを設定することができます。

設定できるパラメータの形式には制限があるので、タスクメッセージの登録時およびタスクの実行時にはそれぞれ変換が必要です。

詳細はパラメータを参照してください。

タスクの実装

タスクは以下のことを注意しながら実装する必要があります。

  • タスクは非同期で処理が行われる
  • 任意の時点で終了通知が行われる場合がある

詳細はタスクの実装を参照してください。

タスクメッセージを登録するアプリケーションを実装

非同期を利用する場合、タスクメッセージをタスクキューに登録する必要があります。 タスクを直接起動しないでください。

コラム

タスクメッセージを登録するとき、ビジネスロジックの内部で使用するデータとなるパラメータを渡すことができます。

詳細はタスクメッセージ登録処理を参照してください。