Я могу только предложить предложение. Я не уверен, почему вы спрашиваете, как запускать работу каждый раз, когда пользователь входит в систему. Для этого все, что вам нужно сделать, это поместить весь код задания в службу, чтобы в контроллере входа в систему вы также могли вызывать код службы при входе пользователя в систему.
В рабочем классе:
class EmailAlertJob {
def utilService
static triggers = {
cron name: 'emailCronTrigger', cronExpression: "0 15 1 ? * SUN-SAT"
}
def execute() {
def send= utilService.sendEmail()
}
}
В контроллере:
def userLogsIn = {
utilService.sendEmail()
}
Что касается отслеживания, если задание выполняется, есть несколько способов сделать это, например, сохранить флаг, определенный для пользователя, и проверить флаг перед запуском задания.