コンテンツにスキップ

処理エンジン追加手順

本項では、データファイルの処理エンジン(Farmnote様開発モジュール)の追加手順を記載します。


1.モジュール調整

バッチ処理ではcli.pyを調整したengine.pyを外部のworker.py経由で呼び出して処理を行います。 cli.pyをコピーし、engine.pyを作成してください。

  • cli.py(調整前プログラム)
def full_update(aFarmname: str) -> None:
    (省略)

def cloud_update(aFarmname: str) -> None:
    (省略)


if __name__ == "__main__":
  farmers_list = [
        (省略)
  ]

  for name in farmers_list:
    full_update(name)

  • engine.py
class Engine(EngineBase):

    def __init__(self, farmid):
        self.farmid = farmid
        self.parent_dir = str(pathlib.Path(__file__).resolve().parent.parent)


    def get_rawdata_dir(self) -> str:
        return self.parent_dir + "/raw-data/" + self.farmid


    def get_ui_dir(self) -> str:
        return self.parent_dir + "/ui/" + self.farmid


    def get_tables_dir(self) -> str:
        return self.parent_dir + "/tables/" + self.farmid


    def get_version_api(self) -> str:
        version_str = "1"
        return version_str


    def run(self):
        self.full_update(self.farmid)


    def full_update(self, aFarmname: str) -> None:
    (変更なし)


    def cloud_update(self, aFarmname: str) -> None:
    (変更なし)


if __name__ == "__main__":
    pass

調整内容

  1. ファイル名cli.pyからengine.pyをコピー作成
  2. EngineBaseを基底クラスとしたEngineクラスに変換
  3. Engineクラス内に下記の6つメソッドを追加
  4. get_version_apiのAPIバージョン番号を設定
    (get_version_api以外のメソッドは、上記のengine.pyの内容のままコピーしてください)
  __init__
  get_rawdata_dir
  get_ui_dir
  get_tables_dir
  get_version_api
  run

調整後のプログラム構成

(バージョン名ディレクトリ)/
  └─data_process/
      │  engine.py
      ├─breeding_pipeline/
      ├─farmnote_cloud_pipeline/
      ├─json_dump/
      ├─setting/
      ├─validation/
      └─zoetis_pipeline/

raw-data,tables,uiディレクトリは不要です

Info

バージョン名は任意で決定してください。job登録の際に指定する名称となります。


2. 開発環境モジュール配置

調整したengineプログラム群をSCPで開発環境サーバーに配置します。

項目名
IPaddress 34.67.210.70
ログイン用秘密鍵 farmnote-gene-dev_fngene.ppk
User fngene
Passphrase fngene
配置ディレクトリ /usr/local/fngene/batch/engine/

3. 開発環境データファイル配置

追加したエンジンで処理するデータファイルを、管理画面(開発環境)から登録してください。


4. 開発環境ジョブ登録

管理画面のジョブ登録機能(開発環境)で、決定したバージョン名を指定してジョブを新規登録してください。


5. 動作確認

ジョブは数分で起動され、処理されます。(処理時間はエンジンの処理内容によります)
正しく処理されているか確認してください。

処理結果の確認には下記の方法があります。

  • ジョブの処理ステータス
    管理画面の組織一覧で最新ジョブの処理結果ステータスが表示されます。(要確認)
    <判定内容>

    • プロセスが正常に終了したか
  • 画面の表示内容
    ユーザー画面で出力結果の内容を確認します。
    <判定内容>

    • uiフォルダに出力された内容が反映されているか
    • 出力された内容が正しいか
  • 処理対象ファイル
    Firebase Storageにアーカイブされている処理対象ファイルを確認します。
    (1) 管理画面で対象組織のジョブ一覧を表示し、対象ジョブのIDを確認
    (2) Firebase管理コンソールでStorageのアーカイブフォルダを表示し、対象のジョブIDフォルダ配下を確認
    <判定内容>

    • 処理対象となったデータファイルに過不足がないか
  • プロセスログ
    engine.py(調整前:cli.py)が出力した内容をログファイルから確認します。
    (1) サーバーにターミナルログイン
    (2) コマンドで/var/log/fngene/最新ログファイルの内容を確認してください。
    <確認内容>

    • 処理詳細ログ

ログ確認例

cd /var/log/fngene
ls -lt   (最新ログファイル名確認)
view (最新ログファイル名)

ログ出力サンプル

 2022-05-20T07:01:02.133334+09:00 /usr/local/fngene/batch/process_manager.py [INFO] process_manager start.
2022-05-20T07:01:02.177917+09:00 /usr/local/fngene/batch/process_manager.py [INFO] PROCESS START - ID:59 - FarmID:2QqfX3J4xmQ4hWNutnxVJ3Fp9653 - Engine_Version:v002 - PatternID:1 - Regist_Count:35
Match Files :11:11
GCS File DL: 20220513/breeding_ledger_web/calving_list_0279693601_20220405.xls
GCS File DL: 20220513/breeding_ledger_web/dhi_check_0279693601_20211110_20220124.xls
GCS File DL: 20220513/breeding_ledger_web/edit_chardata_0279693601_20220405.xls
GCS File DL: 20220513/breeding_ledger_web/quicklist_0279693601_ikusei_20220405.xls
GCS File DL: 20220513/breeding_ledger_web/quicklist_0279693601_keisan_20220405.xls
GCS File DL: 20220513/zoetis_web/ReportReliability2022-03-02.csv
GCS File DL: 20220513/zoetis_web/ReportNetMerit2022-03-02.csv
GCS File DL: 20220513/zoetis_web/ReportMatingReport2022-03-02.csv
GCS File DL: 20220513/zoetis_web/ReportCoreTraits2022-03-02.csv
GCS File DL: 20220513/zoetis_submitted/20211012_test_cow.csv
GCS File DL: 20220513/zoetis_direct/Zoetis_Tomizawa Farm_CLARIFIDE Dairy Report_20220105_110526.xls
GCS File DL: 20220428/zoetis_web/ReportReliability2022-03-02.csv
GCS File DL: 20220428/zoetis_web/ReportNetMerit2022-03-02.csv
GCS File DL: 20220428/zoetis_web/ReportMatingReport2022-03-02.csv
GCS File DL: 20220428/zoetis_web/ReportCoreTraits2022-03-02.csv
GCS File DL: 20220428/zoetis_submitted/20211012_test_cow.csv
GCS File DL: 20220428/zoetis_direct/Zoetis_Tomizawa Farm_CLARIFIDE Dairy Report_20220105_110526.xls
-----------------------------------
繁殖台帳
['/usr/local/fngene/batch/engine/v002/raw-data/2QqfX3J4xmQ4hWNutnxVJ3Fp9653/zoetis_submitted/20211012_test_cow.csv']
zoetis
WARNING *** file size (384960) not 512 + multiple of sector size (512)
WARNING *** file size (384960) not 512 + multiple of sector size (512)
WARNING *** file size (384960) not 512 + multiple of sector size (512)
WARNING *** file size (384960) not 512 + multiple of sector size (512)
WARNING *** file size (384960) not 512 + multiple of sector size (512)
WARNING *** file size (384960) not 512 + multiple of sector size (512)
   alpha_s1_casein  ayrshire/red_breeds%  ...      sample_status  reported_date
0              BC*                     0  ...  from search point     2022/01/04
1              BB*                     0  ...  from search point     2022/01/04

      :
      :
      :

Info

上記で確認できるログは、ジョブリスト取得APIでも取得可能です。(要画面対応)


6. 本番環境への反映

本番環境で手順2.3.4を行い、本番環境に反映します。

本番環境サーバー

項目名
IPaddress 34.71.180.95
ログイン用秘密鍵 farmnote-gene-prod_fngene.ppk
User fngene
Passphrase fngene
配置ディレクトリ /usr/local/fngene/batch/engine/

本番環境Firebase Storageアーカイブフォルダ (処理結果確認用)


以上でエンジンの追加は完了です。