У меня есть задание, запланированное на Liferay, если, например, эта работа выполняется каждые 5 минут и ей требуется более 5 минут, как ее обрабатывать в Liferay?Не выполняйте задание, когда он уже запущен
Что я заметил, так это то, что работа начнется снова, это может привести к проблемам для меня.
Можно ли как-то не запускать работу, когда она уже работает?
* с помощью Liferay 6.0.6
Благодарности
удивительный, спасибо! Вы могли бы предоставить немного больше информации? LockLocalServiceUtil.lock (long userId, String className, long key, String owner, boolean inheritable, long expirationTime) Я думаю, expirationTime измеряется в миллисекундах? какое значение требуется в поле владельца? –
Да, вы правы, expirationTime измеряется в milis. На самом деле, я не знаю вашего точного варианта использования, но для меня всегда достаточно блокировки (String className, String key, String owner, boolean retrieveFromCache) '. Самый простой способ использовать это - заполнить параметры _className_ и _key_ вашими значениями ('isLocked()' метод проверяет только в соответствии с этими параметрами) и заполнить _owner_ некоторой константой String (например, DEFAULT_OWNER) и _retrieveFromCache_ с ложным значением. Затем вы можете использовать 'unlock (String className, String key)' для разблокировки, и все работает нормально. –