2017-04-18 19 views
-2

ユーザがカスタムトリガを使用していくつかのタスクのスケジューリングを設定できるようにするモジュールを構築する必要があります。ユーザーは、ジョブを動的にスケジュール/スケジュール解除/変更できます。 バージョン6.2からの道はもう働きません。Liferay 7.0の動的スケジューラ

答えて

1

チェックこの例を https://github.com/liferay/liferay-blade-samples/tree/master/liferay-workspace/modules/blade.schedulerentry

キーポイントは、今 そのサービス& BaseSchedulerEntryMessageListener

@Component(immediate = true, service = BladeSchedulerEntryMessageListener.class) 
public class BladeSchedulerEntryMessageListener 
    extends BaseSchedulerEntryMessageListener { 

    @Activate 
    @Modified 
    protected void activate() { 
     schedulerEntryImpl.setTrigger(
      TriggerFactoryUtil.createTrigger(
       getEventListenerClass(), getEventListenerClass(), 15, 
       TimeUnit.MINUTE)); 

     _schedulerEngineHelper.register(
      this, schedulerEntryImpl, DestinationNames.SCHEDULER_DISPATCH); 
    } 

    @Deactivate 
    protected void deactivate() { 
     _schedulerEngineHelper.unregister(this); 
    } 

    @Override 
    protected void doReceive(Message message) throws Exception { 
     if (_log.isInfoEnabled()) { 
      _log.info("Received message on schedule: " + message); 
     } 
    } 

    private final Log _log = LogFactoryUtil.getLog(
     BladeSchedulerEntryMessageListener.class); 

    @Reference(target = ModuleServiceLifecycle.PORTAL_INITIALIZED, unbind = "-") 
    private volatile ModuleServiceLifecycle _moduleServiceLifecycle; 

    @Reference(unbind = "-") 
    private volatile SchedulerEngineHelper _schedulerEngineHelper; 

    @Reference(unbind = "-") 
    private volatile TriggerFactory _triggerFactory; 

} 
+0

を拡張する必要があり、私はこの例を見てきましたが、私はタスクを開始および停止する方法が分かりませんスケジュール時間を動的に変更できます。 – Alex

+1

@Alexあなたが実際に試したこと、うまくいくこと、しないこと、そしてあなたが実際にやりたい/知っている/達成したいことに、あなたは「もう働かない」という言い方を言い換えることができます。誰かがあなたの手助けをした後に、より多くの詳細を明らかにし、ランダムなスニペットを提供するだけでは、あなたが探している情報を誰にも与えることはできません。 –

関連する問題