createActionJob
createActionJob
はアクションをジョブとして実行する関数です。
createActionJob
関数経由でのアクションのジョブとしての実行でも、ログイン中のユーザーが実行権限を持っているか検証されます。
例外として、ユーザー自身は権限を持っていなくても、呼び出し元のJavaScriptアクションが許可されている場合には実行できます。
基本的な使い方
以下は実行に時間のかかるアクションをジョブとして実行している例です。
import { createActionJob } from "@basemachina/action";
/** @type { import("@basemachina/action").Handler } */
export default async ({ reports }) => {
const results = await createActionJob("create_reports", { reports });
if (!results[0].failure) {
throw new Error("レポート作成ジョブの作成に失敗しました");
}
return `レポート作成ジョブを作成しました: ${results[0].success.actionJobId}`;
};
オプションで実行日時を指定してジョブの実行の予約もできます。
import { createActionJob } from "@basemachina/action";
/** @type { import("@basemachina/action").Handler } */
export default async ({ reports }) => {
const results = await createActionJob(
"create_reports",
{ reports },
// 2024年10月1日22時に実行
{ scheduledAt: "2024-10-01 22:00:00" },
);
if (!results[0].failure) {
throw new Error("レポート作成ジョブの作成に失敗しました");
}
return `レポート作成ジョブを作成しました: ${results[0].success.actionJobId}`;
};
詳細なインターフェース
引数
引数名 | 型 | 必須 ・ 任意 | 説明 | 例 |
---|---|---|---|---|
actionId | string | 必須 | 実行するアクションのID、または識別子。 | 'c3hc2ii23akg0sokf9j0' , 'get-user' |
args | object | 任意 | アクションを実行するための引数で、 キーがパラメータ名、値がパラメータに渡す値のオブジェクト。 | { username: 'JohnDoe' } |
options | object | 任意 | ジョブの詳細設定。 | { scheduledAt: 1609459200 } |
options.scheduledAt | Date | string | number | 任意 | ジョブの予約実行日時。string はDate 型に変換できる値、number はUnixTimestamp (秒)を入力してください。日時は現在から30日以内の値を指定できます。 | new Date() , '2024-10-01' , 1609459200 |
なおパラメータの入力値の種類ごとにargs
へ渡せる値の型は以下です。
入力値の種類 | 型 | 説明 | 例 |
---|---|---|---|
テキスト | string | - | { company_name: '株式会社ベースマキナ' } |
数値 | number | null | - | { user_id: 123 } |
日付 | Date | string | number | null | string はDate 型に変換できる値、number はUnixTimestamp (秒)を入力してください。 | { created: '2023-01-01', updated: new Date(), deleted: 1609459200 } |
ファイル | File | null | - | { upload_text: new File(['test'], 'test.txt', { type: 'text/plain' }) } |
真偽値 | boolean | - | { checked: true } |
JSON値 | string | number | Date | null | JSON値の種類ごとに型が異なります。 テキストなら string | null 、数値ならnumber | null 、日付ならstring | number | Date | null を渡せます。日付の場合 string はDate 型に変換できる値、number はUnixTimestamp (秒)を入力してください。 | { company_name: '株式会社ベースマキナ', user_id: 123, created: '2023-01-01', deleted: null } |
SQL | string | - | { query: 'SELECT * FROM users;' } |
システム値 | string | - | { offset: '20' } |
配列 | Array | 各要素の種類の型は、各入力値の種類の型と同じです。 | { user_ids: [10, 11, 12] } |
タプル | Array | 各要素の種類の型は、各入力値の種類の型と同じです。 | { id_and_name: [123, 'taro'] } |
戻り値
プロパティ名 | 型 | 説明 | 例 |
---|---|---|---|
actionJobId | string | 作成したジョブのID。 | cpt8gkab5gv1ibk8r5h0 |