Counter
カウンタサービスは、ユニークなカウンタ値を生成するサービスです。トランザクション名の生成やアプリケーションで利用するオーダー番号やネットワークのVLAN番号の払い出しなどに使用できます。 カウンタの定義情報は以下のとおりです。
-
counter_type
: カウンタの種類を指定します。Number
、UUID
、Inventory
の3つのタイプがあります。Number
は数値タイプで、最小値から最大値まで順に発行されます。最大値に達すると、最小値から再度払い出します。UUID
はuuidtype1で払い出されます。Inventory
は、Number
と同様に、最小値から最大値まで順番に払い出されますが、在庫管理されるため、在庫がなくなり次第、409 Conflict
が返却されます。払い出されたカウンタを払い戻すことで新規の取得が可能になります。 -
counter_name
: カウンタを一意に識別する名前を指定します。 -
counter_format
: カウンタから返される値の形式を指定します。値は$
で表されます。SO00000101
などの形式で払い出す場合は、SO$
を指定してください。数値の左0埋めについては後述するpadding
をTrue
に設定する必要があります。 -
min_num
: カウンタの最小値を指定します。 -
max_num
: カウンタの最大値を指定します。 -
padding
: ゼロパディングモードを指定します。counter_format
の例に示されているSO00000101
のように、ゼロが埋め込まれた値を取得する場合は、True
を指定します。 -
counter_script
: スクリプトを使用して、カウンタで払い出された数値をもとに値をカスタマイズできます。変数v
に割り当てられたカウンタ値が格納されているため、開発者はスクリプト内でv
を書き換えることで自由にカスタマイズできます。
# Example of giving the last two digits of the year and the month
today = datetime.datetime.utcnow()
v = "{y}{p}{m}{v}".format(y=today.year-2000, p="0" if today.month < 10 else "", m=today.month, v=v)
カウンタには以下の操作が提供されます。
-
allocate
: カウンタ値を取得します。 -
release
: カウンタ値を解放します。このアクションは、Inventory
タイプでのみ可能です。 -
expand
: カウンタプールのサイズを拡張します。最小値は現在のサイズより大きくすることはできません。最大値は現在のサイズより小さくすることはできません。このアクションは、Inventory
タイプでのみ可能です。 -
shrink
: カウンタプールのサイズを縮小します。最小値は現在のサイズより小さくすることはできません。最大値は現在のサイズより大きくすることはできません。このアクションは、Inventory
タイプでのみ可能です。
Note
カウンタの払い出しや払い戻しなどはCounter
組込みオブジェクトで操作します。Docs » リファレンス » ビルトインオブジェクト
を参照してください。