Альтернативная реализация механизма рассылки
Сделать отчет о состоянии задач для пользователя позволяет стандартный механизм "Подписки на уведомления".
Но с его помощью нельзя настроить четкое расписание для рассылки из-за использования привязки к интервалам.
В случае когда рассылка должна уходить в определенное время нужно использовать следующий способ.
- Создать подписку на уведомления для пользователей.
- Теперь нужно перейти в "Подписки на уведомления" и скопировать ссылку. (Навести курсор на название нужной рассылки и нажать "Копировать адрес ссылки")
Из ссылки нужно взять subscriptionId, который будет использован в schedule скрипте.
http://localhost:8888/TrackStudio/TaskSubscribeViewAction.do&method=page&id=4028808a19512fa5011951d9cbdb0070&subscriptionId=8a80828f4b020277014b022671920003
package scripts.scheduler;
import com.trackstudio.app.adapter.AdapterManager;
import com.trackstudio.external.IGeneralScheduler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ReportScheduler implements IGeneralScheduler {
private static final Log LOGGER = LogFactory.getLog(ReportScheduler.class);
@Override
public String getCronTime() {
//execute every month by first day
return "0 0 0 1 * ?";
}
@Override
public String getName() {
return "This scheduler executes the subscription by every month";
}
@Override
public String execute() throws Exception {
String subscriptionId = "8a80828f4b020277014b022671920003";
AdapterManager.getInstance().getFilterNotifyAdapterManager().processSubscription(subscriptionId, null, false);
return "OK";
}
@Override
public boolean isUse() {
return true;
}
}