Передача аграментов в NCron Job

У меня есть сервис NCron, который работает с заданным интервалом. Я хочу передать переменную на работу, но я не смог понять, как. Я также не видел никакой информации в NCon Wiki. Можно ли передать какие-либо аргументы в службу NCron?

Если вы не знакомы с NCron или вам нужна дополнительная информация: http://code.google.com/p/ncron/

service.At(setting.Interval).Run(setting.ClassInfo);

1 ответ

Решение

Предполагая, что значение, которое вы хотите передать в задание, доступно вам при регистрации заданий в планировщике (например, параметры командной строки), вы можете сделать что-то вроде этого:

static void ServiceSetup(SchedulingService service)
{
    service.Hourly().Run(() => new MyJob("literal"));
    service.Daily().Run(() => new MyJob(_field));
}

Используя сексуальный лямбда-синтаксис, вы только что определили две однострочные функции, каждая из которых создает один и тот же класс задания с использованием разных параметров конструктора.

В качестве альтернативы вы можете позволить контейнеру IoC создавать экземпляры ваших заданий с любыми аргументами конструктора и / или службами, которые им требуются. Если вы не понимаете, о чем я сейчас говорю, вы, вероятно, захотите придерживаться первого предложения, хотя:)

Другие вопросы по тегам