Closed ragi256 closed 4 years ago
DAOを実装した際にjobnetとjobのsubsystemが混同しており、うまくjob_executionの指定ができていませんでした。jobnet内で別subsystemのjobを利用している場合、jobのsubsystemを利用するのが正しいため修正します。
修正前の状態では job_executionの存在しない初回は起動したものの、DB内部のレコードをqueueとして利用する2回目からはジョブが失敗するようになりました。
subsys1/dummy.jobnet が下記のように記述されているとき
dummy -> subsys2/job
実行後のjob_executionsはこのように、jobとjobnetで異なるsubsystemとなる(dummy.job省略)
select job_execution_id as je_id , status , lock , jobnets.subsystem as jn_subsys , jobnet_name as jn_name , jobs.subsystem as job_subsys , job_name as job_name from job_executions left join jobs using(job_id) left join jobnets using(jobnet_id) ; je_id | status | lock | jn_subsys | jn_name | job_subsys | job_name -------+-----------+------+--------------+------------+--------------+--------------- 1 | succeeded | f | subsys1 | jobnet | subsys2 | job
subsys/dummy.jobnet が下記のように記述されているとき
dummy -> *subsys2/jobnet # subsys2/jobnet の中身は job とする
実行後のjob_executionsはこのように、展開先の同じsubsystemとなる(dummy.job省略)
select job_execution_id as je_id , status , lock , jobnets.subsystem as jn_subsys , jobnet_name as jn_name , jobs.subsystem as job_subsys , job_name as job_name from job_executions left join jobs using(job_id) left join jobnets using(jobnet_id) ; je_id | status | lock | jn_subsys | jn_name | job_subsys | job_name -------+-----------+------+--------------+------------+--------------+-------------- 1 | succeeded | f | subsys2 | jobnet | subsys2 | job
そもそものDB設計で大きく修正が必要となったため、合わせて job_execution テーブルに関しても変更されるためcloseします
job_execution
DAOを実装した際にjobnetとjobのsubsystemが混同しており、うまくjob_executionの指定ができていませんでした。jobnet内で別subsystemのjobを利用している場合、jobのsubsystemを利用するのが正しいため修正します。
修正前の状態では job_executionの存在しない初回は起動したものの、DB内部のレコードをqueueとして利用する2回目からはジョブが失敗するようになりました。
例1: 別subsystemのjobを使っている
subsys1/dummy.jobnet が下記のように記述されているとき
実行後のjob_executionsはこのように、jobとjobnetで異なるsubsystemとなる(dummy.job省略)
例2: 別subsystemのjobnetを使っている
subsys/dummy.jobnet が下記のように記述されているとき
実行後のjob_executionsはこのように、展開先の同じsubsystemとなる(dummy.job省略)