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 voidexecuteTask()abstract java.lang.StringgetDescription()intgetQueueId()java.lang.StringgetUniqueKeyParallel()Ключ, который показывает уникальность этой задачи для запуска одновременно/параллельно.java.lang.StringgetUniqueKeyQueue()Ключ, который показывает уникальность этой задачи для очереди.voidinit(Setup setup)protected voidremoveMyselfFromTable()voidrun()voidsetQueueId(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:
runin 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 (чаще всего на всякий случай). Хорошей практикой является ключ типа "модуль-мид-имятаска".
-