package Ġt ed . scheduler . impl Ċ Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġt ed . scheduler . impl . Jdbc Select T ed . Sql Param Ċ import Ġt ed . scheduler . impl . T ed Scheduler Impl . Context Ċ import Ġjava . sql . Connection Ċ import Ġjava . sql . SQLException Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAugust us Ċ Ġ* Ġcreated Ġon Ġ 2 0 1 8 . 0 8 . 1 6 Ċ Ġ* Ċ Ġ* Ġfor ĠT ED Ġinternal Ġusage Ġonly !!! Ċ Ġ* Ċ Ġ* ĠDao Ġfunctions Ġfor Ġt ed - scheduler Ġ( Post gre Sql ) Ċ Ġ*/ Ċ internal Ġclass ĠDao Postgres ( context : ĠContext ) Ġ: ĠAbstract Dao ( context ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Dao Postgres :: class . java ) ĊĊĠĠĠ Ġprivate Ġclass ĠLong Val Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlong Val : ĠLong ? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlock Task ( connection : ĠConnection , ĠtaskId : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġad vis ory Lock Task ( connection , ĠtaskId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġuse Ġad vis ory Ġlock Ġin ĠPostgres Ġmechanism ĊĠĠĠ Ġprivate Ġfun Ġad vis ory Lock Task ( connection : ĠConnection , Ġlock TaskId : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" advisory Ġlock Ġ{}", Ġlock TaskId ) ĊĠĠĠĠĠĠĠ Ġval Ġsql Ġ= Ġ" select Ġcase Ġwhen Ġpg _ try _ advisory _ x act _ lock ( 1 9 7 7 1 1 0 8 0 2 , Ġ$ lock TaskId ) Ġthen Ġ 1 Ġelse Ġ 0 Ġend Ġas Ġlong Val " ĊĠĠĠĠĠĠĠ Ġval Ġres : ĠList < Long Val > ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres Ġ= ĠSch d Jdbc Select . select Data ( connection , Ġsql , ĠLong Val :: class . java , Ġempty List < Sql Param >()) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" advisory Ġlock Ġ{} ĠSQLException : Ġ{} Ġ{}", Ġlock TaskId , Ġe . errorCode , Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ! Ġ( res . isEmpty () Ġ|| Ġres [ 0 ]. long Val Ġ== Ġ 0 L ) ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ