Class RunTask
java.lang.Object
ru.bitel.bgbilling.kernel.task.server.bean.RunTask
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Runnable
- Direct Known Subclasses:
AdvancePaymentsManual
,AssistRecurringRunTask
,AutoprintAutoBatch
,AutoprintReprintAsIsBatch
,AutoprintReprintAutoBatch
,BillDocsSender
,BillDocsSenderForAll
,CommentUpdater
,InetRecalculator
,RunTaskRecalculator
,SessionsRecalculator
,SubscribeSynchronizer
,TvRecalculator
,VoiceBalanceSetter
public abstract class RunTask
extends java.lang.Object
implements java.lang.Runnable, java.io.Serializable
Периодическая/тяжёлая задача в представлении Runnable который запускается в пуле.
После запуска выполняет executeTask таска-класса и после завершения executeTask удаляет запись о себе из таблицы запущенных задач (scheduled_task_run).
Обычно в executeTask создаётся таск-задача (из тех что периодические, например) и делается её run напрямую.
- See Also:
- Serialized Form
-
Field Summary
-
Constructor Summary
Constructors Constructor Description RunTask()
-
Method Summary
Modifier and Type Method Description protected abstract void
executeTask()
abstract java.lang.String
getDescription()
int
getQueueId()
java.lang.String
getUniqueKeyParallel()
Ключ, который показывает уникальность этой задачи для запуска одновременно/параллельно.java.lang.String
getUniqueKeyQueue()
Ключ, который показывает уникальность этой задачи для очереди.void
init(Setup setup)
protected void
removeMyselfFromTable()
void
run()
void
setQueueId(int id)
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
setup
-
log
protected transient org.apache.logging.log4j.Logger log
-
-
Constructor Details
-
RunTask
public RunTask()
-
-
Method Details
-
setQueueId
public void setQueueId(int id) -
getQueueId
public int getQueueId() -
getDescription
public abstract java.lang.String getDescription() -
init
-
run
public final void run()- Specified by:
run
in interfacejava.lang.Runnable
-
removeMyselfFromTable
protected void removeMyselfFromTable() -
executeTask
protected abstract void executeTask() -
getUniqueKeyQueue
public java.lang.String getUniqueKeyQueue()Ключ, который показывает уникальность этой задачи для очереди. Задачи с одинаковым ключом, не равным null: при выборке шедулером (в TaskRunProcessor) считаются дублирующимися и схлопываются в одну. Если надо, чтобы задачи не копились кучей одинаковых в очереди - надо перегрузить этот метод. Пример: синхронизация одной и той же сущности в cerbercrypt. Хорошей практикой является ключ типа "модуль-мид-имятаска-какиетохарактеристикизадачи". -
getUniqueKeyParallel
public java.lang.String getUniqueKeyParallel()Ключ, который показывает уникальность этой задачи для запуска одновременно/параллельно. Задачи с одинаковым ключом, не равным null: если сейчас уже запущена задача с таким же ключом, то эта задача остаётся в очереди, не запускается параллельно. Если надо, чтобы задачи не выполнялись параллельно, а ждали завершения предыдущей такой же - надо перегрузить этот метод. Пример: синхронизация в одну и ту же CAS разных сущностей cerbercrypt (чаще всего на всякий случай). Хорошей практикой является ключ типа "модуль-мид-имятаска".
-