Site Tools


Hotfix release available: 2026-07-14b "Mort". upgrade now! [57.2] (what's this?)
Hotfix release available: 2026-07-14a "Mort". upgrade now! [57.1] (what's this?)
New release available: 2026-07-14 "Mort". upgrade now! [57] (what's this?)
devpark:dev:scheduler

Установка службы планировщика

Проект сервиса находится в SVN DevPark.WinterQueen.Scheduler.

Для функционирования планировщика необходимо создать базу данных. БД создается вручную, таблицы и необходимые связи с помощью скриптов из проекта: Sql/tables.sql, Sql/table_history.sql

Собранный проект копируем в любое удобное место.

Правим DevPark.WinterQueen.Scheduler.exe.config:

  1. задаем адрес endpoint'а http://localhost:8733/SchedulerWcfService/
  2. указываем строку подключения к созданной базе данных планировщика в параметре quartz.dataSource.myDS.connectionString

Запускаем консоль с правами администратора. Если запустить DevPark.WinterQueen.Scheduler.exe в консольном режиме без ключей, то сервис начнет работать из консоли. Для установки сервиса используются ключи: -i -a=User|LocalService|LocalSystem|NetworkService. Должна быть использована учетная запись с правами на БД планировщика.

Веб-интерфейс для XAF-приложения

Уже собранный проект находится в SVN в каталоге DevPark.WinterQueen/DevPark.WinterQueen.Web/scheduler. Можно просто всю папку брать и копировать в production. При этоv интерфейс будет доступен по адресу <основной сайт>/scheduler/index.aspx.

В bin добавились: PostSharp.dll, DevPark.WinterQueen.Scheduler.Web.dll

В корневую папку веб-сайта копируем Proxy.svc, jobs.json (тут список задач для автосоздания, надо будет установить время запуска нужное (http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html), а то сейчас каждую минуту; <connectionString> так и оставляем).

Добавляем в web.config:

 <system.serviceModel>
    <client>
      <endpoint address="http://localhost:8733/SchedulerWcfService/"
                behaviorConfiguration="scheduler" binding="webHttpBinding" 
                name="scheduler" contract="DevPark.WinterQueen.Scheduler.ISchedulerWcfService" />  
    </client>  
    <behaviors>  
      <endpointBehaviors>  
        <behavior name="scheduler">  
          <webHttp />  
        </behavior>  
        <behavior name="proxy">  
          <webHttp />
        </behavior>  
      </endpointBehaviors> 
    </behaviors>  
    <bindings>  
      <webHttpBinding>  
        <binding name="proxy" allowCookies="true" contentTypeMapper="DevPark.WinterQueen.Web.RawContentTypeMapper, DevPark.WinterQueen.Web">  
        </binding>  
      </webHttpBinding>  
    </bindings>  
    <services>  
      <service name="DevPark.WinterQueen.Web.Proxy">  
        <endpoint address="" behaviorConfiguration="proxy" binding="webHttpBinding"  
          bindingConfiguration="proxy" contract="DevPark.WinterQueen.Web.Proxy" />  
      </service>  
    </services>  
</system.serviceModel>

Вызов метода шедулера по кнопке из XAF

var channelFactory = new WebChannelFactory<ISchedulerWcfService>("scheduler");
var channel = channelFactory.CreateChannel();  
channel.RunJob("SendSmsJob", new SqlConnectionStringBuilder(WebApplication.Instance.ConnectionString).InitialCatalog);
devpark/dev/scheduler.txt · Last modified: by 127.0.0.1