public class AbandonedOrderService extends SingletonSchedulableService
Modifier and Type | Class and Description |
---|---|
protected class |
AbandonedOrderService.AbandonedOrderBatchProcessor
Processor for fetching and updating a given range of abandoned orders.
|
protected class |
AbandonedOrderService.LostOrderBatchProcessor
Processor for fetching and updating a given range of lost orders.
|
protected class |
AbandonedOrderService.OrderBatchProcessor
Base runner class for updating a range of orders.
|
Modifier and Type | Field and Description |
---|---|
protected static int |
ABANDONED_ORDERS |
static java.lang.String |
CLASS_VERSION
Class version string
|
protected static int |
LOST_ORDERS |
protected static java.util.ResourceBundle |
sResourceBundle
Resource Bundle
|
mJobId
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
AbandonedOrderService() |
Modifier and Type | Method and Description |
---|---|
protected MutableRepositoryItem |
createAbandonmentInfo(RepositoryItem pOrder)
Deprecated.
Use AbandonedOrderTools to create an abandonmentInfo item instead
|
protected javax.servlet.Servlet |
createAdminServlet()
Creates and returns a new Servlet that will administer this service.
|
void |
doScheduledTask(Scheduler pScheduler,
ScheduledJob pScheduledJob)
Callback method for the SingletonSchedulableService.
|
RepositoryItem[] |
findAbandonedOrders()
Deprecated.
Use ranging and batching queries to process orders instead. This method is not used to process
orders so overrides to this method will no longer have an effect on processing.
|
RepositoryItem[] |
findLostOrders()
Deprecated.
Use ranging and batching queries to process orders instead. This method is not used to process
orders so overrides to this method will no longer have an effect on processing.
|
protected Query |
generateAbandonedOrdersRangeQuery()
Generates the query for finding orders by the order date and one or more states that could mean an order
is abandoned.
|
protected Query |
generateAbandonedQuery(java.lang.String pStartingOrderId,
java.lang.String pEndingOrderId,
boolean pIsFirstBatch)
This method generates the query to identify abandoned orders in batches.
|
protected Query |
generateAbandonmentInfoIsNullQuery()
Constructs the query for order.abandonmentInfo == null
|
protected Query |
generateAbandonmentInfoQueryForAbandonedOrders()
Deprecated.
This has to be broken into three clauses and each clause and'd with the id/date/states constraints
or the resulting query will be split in a manner that causes all orders to be returned.
|
protected Query |
generateAbandonmentInfoQueryForLostOrders()
Deprecated.
This has to be broken into three clauses and each clause and'd with the id/date/states constraints
or the resulting query will be split in a manner that causes all orders to be returned.
|
protected Query |
generateAbandonmentInfoStateIsNullQuery()
Constructs the query for order.abandonmentInfo.state == null
|
protected Query |
generateAbandonmentInfoStatesQueryForAbandonedOrders()
Constructs the query for order.abandonmentInfo.state == "REANIMATED" ...
|
protected Query |
generateAbandonmentInfoStatesQueryForLostOrders()
Constructs the query for order.abandonmentInfo.state != "LOST" ...
|
protected Query |
generateDateQuery(int pIdleDays)
This method generates the part of the abandoned/lost order query that deals with
how long the order has been idle.
|
protected Query |
generateLostOrdersRangeQuery()
Generates the query for finding orders by the order date and one or more states that could mean an order
is lost.
|
protected Query |
generateLostQuery(java.lang.String pStartingOrderId,
java.lang.String pEndingOrderId,
boolean pIsFirstBatch)
This method generates the query to identify abandoned orders in batches.
|
protected Query |
generateMinimumAmountQuery()
This method generates the part of the abandoned/lost order query that deals
with the minimum amount an order must be for to identify the order as
abandoned or lost.
|
protected Query |
generateOrderIdBatchQuery(java.lang.String pStartingOrderId,
java.lang.String pEndingOrderId,
boolean pFirstBatch)
Creates a comparison query to find all orders with order ids alphanumerically between the two given order ids.
|
protected Query |
generateOrderStatesQuery()
This method generates the part of the abandoned/lost order query that deals with
what order states are considered possible for abandonment.
|
RepositoryItem[] |
getAbandonedOrders()
Deprecated.
Call
findAbandonedOrders() instead.
The number of loaded orders is limited to getMaxAbandonedOrdersPerTransaction() |
protected RepositoryItem[] |
getAbandonedOrdersBatch(java.lang.String pStartingOrderId,
java.lang.String pEndingOrderId,
boolean pIsFirstBatch)
Gets the abandoned orders between the given starting and ending order id based on the criteria defined
by the abandoned order query.
|
AbandonedOrderTools |
getAbandonedOrderTools() |
Query |
getAbandonmentInfoQueryForAbandonedOrders()
If the property is null, generate the query by calling
generateAbandonmentInfoQueryForAbandonedOrders,
otherwise return the query stored in the property.
|
Query |
getAbandonmentInfoQueryForLostOrders()
If the property is null, generate the query by calling
generateAbandonmentInfoQueryForLostOrders,
otherwise return the query stored in the property.
|
Query |
getDateQueryForAbandonedOrders()
Generate the query by calling generateDateQuery.
|
Query |
getDateQueryForLostOrders()
Generate the query by calling generateDateQuery.
|
java.lang.String |
getDateQueryPropertyName() |
protected java.util.concurrent.ExecutorService |
getExecutorService()
Gets the Java ExecutorService that will manage the processing threads.
|
int |
getIdleDaysUntilAbandoned() |
int |
getIdleDaysUntilLost() |
RepositoryItem[] |
getLostOrders()
Deprecated.
call
findLostOrders() instead. |
protected RepositoryItem[] |
getLostOrdersBatch(java.lang.String pStartingOrderId,
java.lang.String pEndingOrderId,
boolean pIsFirstBatch)
Gets the lost orders between the given starting and ending order id based on the criteria defined
by the lost order query.
|
int |
getMaxAbandonedOrdersPerTransaction()
The maximum number of abandoned orders which will be updated at once.
|
int |
getMaxLostOrdersPerTransaction()
The maximum number of lost orders which will be updated at once.
|
double |
getMinimumAmount() |
Query |
getMinimumAmountQuery()
If the property is null, generate the query by calling
generateMinimumAmountQuery,
otherwise return the query stored in the property.
|
int |
getNumberOfBatchesPerTransaction()
Returns property numberOfBatchesPerTransaction
|
int |
getNumberOfConcurrentUpdateThreads()
Gets the number of threads that can do updates at the same time.
|
int |
getNumberOfHoursToTimeOutThreads()
Gets the number of hours to timeout threads.
|
java.lang.String |
getOrderIdPropertyName()
Gets the name of the property that represents the order id.
|
java.lang.String |
getOrderStatePropertyName() |
Query |
getOrderStatesQuery()
If the property is null, generate the query by calling generateOrderStatesQuery,
otherwise return the query stored in the property.
|
java.lang.String |
getPriceInfoPropertyName() |
ProcSavePriceInfoObjects |
getSavePriceInfoObjectsProcessor()
Gets the processor that is used to save price infos for incomplete orders.
|
int |
getSizeOfBatch()
Returns property SizeOfBatch
|
java.lang.String |
getSubtotalPropertyName() |
javax.transaction.TransactionManager |
getTransactionManager()
Returns property transactionManager
|
void |
processAbandonedOrders()
This method gets the orders identified as abandoned,
iterates through the results, calling the methods to update each order,
and send an AbandonedOrderMessage.
|
protected void |
processAbandonedOrders(RepositoryItem[] pOrders)
This method takes the orders identified as abandoned,
iterates through them, calling the methods to update each order,
and send an AbandonedOrderMessage.
|
void |
processLostOrders()
This method gets the orders identified as lost, then
iterates through the results, calling the methods to update each order,
and send an AbandonedOrderMessage.
|
protected void |
processLostOrders(RepositoryItem[] pOrders)
This method takes the orders identified as lost, then
iterates through them, calling the methods to update each order,
and send an AbandonedOrderMessage.
|
void |
setAbandonedOrderTools(AbandonedOrderTools pAbandonedOrderTools)
AbandonedOrderTools contains property/item names and helper methods
that manipulate abandonment data.
|
void |
setAbandonmentInfoQueryForAbandonedOrders(Query pAbandonmentInfoQueryForAbandonedOrders)
The part of the abandoned order query that deals with what abandonment
states an order can have for it to be considered newly abandoned.
|
void |
setAbandonmentInfoQueryForLostOrders(Query pAbandonmentInfoQueryForLostOrders)
The part of the lost order query that deals with what abandonment
states an order can have for it to be considered newly lost.
|
void |
setDateQueryForAbandonedOrders(Query pDateQueryForAbandonedOrders)
The part of the abandoned order query that relates to how long
the order has been idle.
|
void |
setDateQueryForLostOrders(Query pDateQueryForLostOrders)
The part of the lost order query that relates to how long
the order has been idle.
|
void |
setDateQueryPropertyName(java.lang.String pDateQueryPropertyName)
The name of the property in the order item descriptor that is to
be used as the basis for the "idle time" part of the abandoned/lost queries
Note: changing this property during runtime after this service
has already run will not change the query - the queries are generated
on the first run of this service.
|
protected void |
setExecutorService(java.util.concurrent.ExecutorService pExecutorService)
Sets the Java ExecutorService that will manage the processing threads.
|
void |
setIdleDaysUntilAbandoned(int pIdleDaysUntilAbandoned)
The number of days which an order needs to be idle before it is considered
abandoned.
|
void |
setIdleDaysUntilLost(int pIdleDaysUntilLost)
The number of days which an order needs to be idle before it is considered
lost.
|
void |
setMaxAbandonedOrdersPerTransaction(int pMaxAbandonedOrdersPerTransaction) |
void |
setMaxLostOrdersPerTransaction(int pMaxLostOrdersPerTransaction) |
void |
setMinimumAmount(double pMinimumAmount)
The minimum amount of an order for it to be considered abandoned or
lost.
|
void |
setMinimumAmountQuery(Query pMinimumAmountQuery)
The part of the abandoned/lost order query that deals with the minimum total
amount an order can have.
|
void |
setNumberOfBatchesPerTransaction(int pNumberOfBatchesPerTransaction)
Sets number of batches a single range query will process,
when there is a large number of orders you could get time
outs at the db level if you try and process all items at once.
|
void |
setNumberOfConcurrentUpdateThreads(int pNumberOfConcurrentUpdateThreads)
Sets the number of threads that can do updates at the same time.
|
void |
setNumberOfHoursToTimeOutThreads(int pNumberOfHoursToTimeOutThreads)
Sets the number of hours to timeout threads.
|
void |
setOrderIdPropertyName(java.lang.String pOrderIdPropertyName)
Sets the name of the property that represents the order id.
|
void |
setOrderStatePropertyName(java.lang.String pOrderStatePropertyName)
The name of the order property that indicates the state of the order.
|
void |
setOrderStatesQuery(Query pOrderStatesQuery)
The part of the abandoned/lost order query that deals with
what order states are considered possible for abandonment.
|
void |
setPriceInfoPropertyName(java.lang.String pPriceInfoPropertyName)
The name of the property of the order repository item that refers to its
priceInfo item.
|
void |
setSavePriceInfoObjectsProcessor(ProcSavePriceInfoObjects pSavePriceInfoObjectsProcessor)
Sets the processor that is used to save price infos for incomplete orders.
|
void |
setSizeOfBatch(int pSizeOfBatch)
Sets number of items a single thread will process
|
void |
setSubtotalPropertyName(java.lang.String pSubtotalPropertyName)
The name of the subtotal property of the priceInfo
to compare the minimum amount against.
|
void |
setTransactionManager(javax.transaction.TransactionManager pTransactionManager)
Sets property transactionManager
|
protected RepositoryItem |
updateAbandonedOrder(RepositoryItem pOrder)
This method updates an order identified as abandoned.
|
protected RepositoryItem |
updateLostOrder(RepositoryItem pOrder)
This method updates an order identified as lost.
|
protected void |
validateSavePriceInfoObjectsProcessor() |
acquireLock, getClientLockManager, getLockName, getLockTimeOut, performScheduledTask, releaseLock, setClientLockManager, setLockName, setLockTimeOut
doStartService, doStopService, getJobDescription, getJobId, getJobName, getSchedule, getScheduler, getThreadMethod, getThreadMethodString, isTransactional, setJobDescription, setJobName, setSchedule, setScheduler, setThreadMethod, setThreadMethodString, setTransactional, startScheduledJob, stopScheduledJob
addLogListener, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static java.lang.String CLASS_VERSION
protected static java.util.ResourceBundle sResourceBundle
protected static int ABANDONED_ORDERS
protected static int LOST_ORDERS
public void setAbandonedOrderTools(AbandonedOrderTools pAbandonedOrderTools)
pAbandonedOrderTools
- the AbandonedOrderTools helper component.public AbandonedOrderTools getAbandonedOrderTools()
public void setIdleDaysUntilAbandoned(int pIdleDaysUntilAbandoned)
pIdleDaysUntilAbandoned
- the number of days which an order needs to
be idle before it is considered abandoned.public int getIdleDaysUntilAbandoned()
public void setIdleDaysUntilLost(int pIdleDaysUntilLost)
pIdleDaysUntilLost
- the number of days which an order needs to be
idle before it is considered lost.public int getIdleDaysUntilLost()
public int getMaxLostOrdersPerTransaction()
processLostOrders()
as
a number of orders to be updated per transaction.public void setMaxLostOrdersPerTransaction(int pMaxLostOrdersPerTransaction)
pMaxLostOrdersPerTransaction
- the maximum number of orderspublic int getMaxAbandonedOrdersPerTransaction()
processAbandonedOrders()
as
a number of orders to be updated per transaction.public void setMaxAbandonedOrdersPerTransaction(int pMaxAbandonedOrdersPerTransaction)
pMaxAbandonedOrdersPerTransaction
- the maximum number of orderspublic void setMinimumAmount(double pMinimumAmount)
pMinimumAmount
- the minimum amount of an order for it to be
be considered abandoned or lost.public double getMinimumAmount()
public void setDateQueryPropertyName(java.lang.String pDateQueryPropertyName)
pDateQueryPropertyName
- the name of the property in the order item
descriptor that is to be used as the basis for the "idle time" part of the
abandoned/lost queriespublic java.lang.String getDateQueryPropertyName()
public void setOrderStatePropertyName(java.lang.String pOrderStatePropertyName)
pOrderStatePropertyName
- the name of the order property that
indicates the state of the orderpublic java.lang.String getOrderStatePropertyName()
public void setPriceInfoPropertyName(java.lang.String pPriceInfoPropertyName)
pPriceInfoPropertyName
- the name of the property of the order
repository item that refers to its priceInfo item.public java.lang.String getPriceInfoPropertyName()
public void setSubtotalPropertyName(java.lang.String pSubtotalPropertyName)
pSubtotalPropertyName
- the name of the subtotal property
of the priceInfo to compare the minimum amount against.public java.lang.String getSubtotalPropertyName()
public void setDateQueryForAbandonedOrders(Query pDateQueryForAbandonedOrders)
pDateQueryForAbandonedOrders
- the part of the abandoned order query that
relates to how long the order has been idlepublic Query getDateQueryForAbandonedOrders() throws RepositoryException
RepositoryException
public void setDateQueryForLostOrders(Query pDateQueryForLostOrders)
pDateQueryForLostOrders
- the part of the lost order query that
relates to how long the order has been idlepublic Query getDateQueryForLostOrders() throws RepositoryException
RepositoryException
public void setOrderStatesQuery(Query pOrderStatesQuery)
pOrderStatesQuery
- the part of the abandoned/lost order query that
deals with what order states are considered possible for
abandonment.public Query getOrderStatesQuery() throws RepositoryException
RepositoryException
public void setAbandonmentInfoQueryForAbandonedOrders(Query pAbandonmentInfoQueryForAbandonedOrders)
pAbandonmentInfoQueryForAbandonedOrders
- the part of the abandoned order query that
deals with what abandonment states an order can have for it
to be considered newly abandonedpublic Query getAbandonmentInfoQueryForAbandonedOrders() throws RepositoryException
RepositoryException
public void setAbandonmentInfoQueryForLostOrders(Query pAbandonmentInfoQueryForLostOrders)
pAbandonmentInfoQueryForLostOrders
- the part of the lost order query that
deals with what abandonment states an order can have for it
to be considered newly lostpublic Query getAbandonmentInfoQueryForLostOrders() throws RepositoryException
RepositoryException
public void setMinimumAmountQuery(Query pMinimumAmountQuery)
pMinimumAmountQuery
- the part of the abandoned/lost order query that
deals with the minimum total amount an order can have.public Query getMinimumAmountQuery() throws RepositoryException
RepositoryException
public ProcSavePriceInfoObjects getSavePriceInfoObjectsProcessor()
public void setSavePriceInfoObjectsProcessor(ProcSavePriceInfoObjects pSavePriceInfoObjectsProcessor)
pSavePriceInfoObjectsProcessor
- public void setTransactionManager(javax.transaction.TransactionManager pTransactionManager)
public javax.transaction.TransactionManager getTransactionManager()
public void setNumberOfBatchesPerTransaction(int pNumberOfBatchesPerTransaction)
public int getNumberOfBatchesPerTransaction()
public void setSizeOfBatch(int pSizeOfBatch)
public int getSizeOfBatch()
public int getNumberOfConcurrentUpdateThreads()
public void setNumberOfConcurrentUpdateThreads(int pNumberOfConcurrentUpdateThreads)
pNumberOfConcurrentUpdateThreads
- The number of threads.public int getNumberOfHoursToTimeOutThreads()
public void setNumberOfHoursToTimeOutThreads(int pNumberOfHoursToTimeOutThreads)
pNumberOfHoursToTimeOutThreads
- The number of hours.public java.lang.String getOrderIdPropertyName() throws RepositoryException
RepositoryException
public void setOrderIdPropertyName(java.lang.String pOrderIdPropertyName)
pOrderIdPropertyName
- The order id property name.protected void setExecutorService(java.util.concurrent.ExecutorService pExecutorService)
pExecutorService
- The Java Executor service.protected java.util.concurrent.ExecutorService getExecutorService()
protected Query generateDateQuery(int pIdleDays) throws RepositoryException
pIdleDays
- the number of days orders need to be idle to be returned by this
query.RepositoryException
protected Query generateOrderStatesQuery() throws RepositoryException
RepositoryException
protected Query generateAbandonmentInfoIsNullQuery() throws RepositoryException
RepositoryException
protected Query generateAbandonmentInfoStatesQueryForAbandonedOrders() throws RepositoryException
RepositoryException
protected Query generateAbandonmentInfoStatesQueryForLostOrders() throws RepositoryException
RepositoryException
protected Query generateAbandonmentInfoStateIsNullQuery() throws RepositoryException
RepositoryException
protected Query generateAbandonmentInfoQueryForAbandonedOrders() throws RepositoryException
RepositoryException
protected Query generateAbandonmentInfoQueryForLostOrders() throws RepositoryException
RepositoryException
protected Query generateMinimumAmountQuery() throws RepositoryException
RepositoryException
protected Query generateAbandonedQuery(java.lang.String pStartingOrderId, java.lang.String pEndingOrderId, boolean pIsFirstBatch) throws RepositoryException
pStartingOrderId
- The id of the first order in the batch. Passing null defeats the batching and returns
all abandoned orders at once. This is not recommended.pEndingOrderId
- The id of the last order in the batch. Passing null defeats the batching and returns
all abandoned orders at once. This is not recommended.pIsFirstBatch
- True if this is the first batch. If it's the first batch then the first order will be
processed otherwise it will be assumed it was processed in the last batch.RepositoryException
protected Query generateLostQuery(java.lang.String pStartingOrderId, java.lang.String pEndingOrderId, boolean pIsFirstBatch) throws RepositoryException
pStartingOrderId
- The id of the first order in the batch. Passing null defeats the batching and returns
all abandoned orders at once. This is not recommended.pEndingOrderId
- The id of the last order in the batch. Passing null defeats the batching and returns
all abandoned orders at once. This is not recommended.pIsFirstBatch
- True if this is the first batch. If it's the first batch then the first order will be
processed otherwise it will be assumed it was processed in the last batch.RepositoryException
protected Query generateAbandonedOrdersRangeQuery() throws RepositoryException
RepositoryException
protected Query generateLostOrdersRangeQuery() throws RepositoryException
RepositoryException
protected Query generateOrderIdBatchQuery(java.lang.String pStartingOrderId, java.lang.String pEndingOrderId, boolean pFirstBatch) throws RepositoryException
pStartingOrderId
- The starting order id.pEndingOrderId
- The ending order id.RepositoryException
protected RepositoryItem[] getAbandonedOrdersBatch(java.lang.String pStartingOrderId, java.lang.String pEndingOrderId, boolean pIsFirstBatch) throws RepositoryException, TransactionDemarcationException
pStartingOrderId
- The starting order id.pEndingOrderId
- The ending order id.pIsFirstBatch
- If this is the first batch. The first batch includes the starting order id in processing.RepositoryException
TransactionDemarcationException
protected RepositoryItem[] getLostOrdersBatch(java.lang.String pStartingOrderId, java.lang.String pEndingOrderId, boolean pIsFirstBatch) throws RepositoryException, TransactionDemarcationException
pStartingOrderId
- The starting order id.pEndingOrderId
- The ending order id.pIsFirstBatch
- If this is the first batch. The first batch includes the starting order id in processing.RepositoryException
TransactionDemarcationException
public RepositoryItem[] getAbandonedOrders() throws RepositoryException
findAbandonedOrders()
instead.
The number of loaded orders is limited to getMaxAbandonedOrdersPerTransaction()
RepositoryException
public RepositoryItem[] findAbandonedOrders() throws RepositoryException
getMaxAbandonedOrdersPerTransaction()
RepositoryException
public RepositoryItem[] getLostOrders() throws RepositoryException
findLostOrders()
instead.getMaxLostOrdersPerTransaction()
RepositoryException
public RepositoryItem[] findLostOrders() throws RepositoryException
getMaxLostOrdersPerTransaction()
RepositoryException
protected MutableRepositoryItem createAbandonmentInfo(RepositoryItem pOrder) throws RepositoryException
pOrder
- the order repository item that needs an abandonmentInfo item created and
associated with itRepositoryException
protected RepositoryItem updateAbandonedOrder(RepositoryItem pOrder) throws RepositoryException
pOrder
- the order that has been identified as abandonedRepositoryException
protected RepositoryItem updateLostOrder(RepositoryItem pOrder) throws RepositoryException, CommerceException
pOrder
- the order that has been identified as lostRepositoryException
CommerceException
public void processAbandonedOrders() throws CommerceException
CommerceException
- If an underlying method throws an exceptionpublic void processLostOrders() throws CommerceException
CommerceException
- If an underlying method throws an exceptionprotected void processAbandonedOrders(RepositoryItem[] pOrders) throws CommerceException
CommerceException
getMaxAbandonedOrdersPerTransaction()
protected void processLostOrders(RepositoryItem[] pOrders) throws CommerceException
pOrders
- The lost orders to process.CommerceException
getMaxLostOrdersPerTransaction()
protected javax.servlet.Servlet createAdminServlet()
createAdminServlet
in class GenericService
public void doScheduledTask(Scheduler pScheduler, ScheduledJob pScheduledJob)
doScheduledTask
in class SingletonSchedulableService
protected void validateSavePriceInfoObjectsProcessor()