Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.08.2014, 20:14
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию Сервис для выполнения "запланированного" однотипного действа

Что средствами RAD Studio можно сотворить для выполнения задачи:

Каждые 24 часа сервис должен лезть на сайт ЦБРФ и забирать от туда курс валют, и запихивать его в Таблицу БД.

Сервис? Один раз поставил и забыл.
Или может быть ещё какие технологии вроде Windows "планировщика задач" есть для решения такой задачи?
Ответить с цитированием
  #2  
Старый 11.08.2014, 22:08
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Да зачем перегружать систему дополнительными сервисами, как вы и сказали - планировщик для запуска обычного приложения.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 12.08.2014, 10:39
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от Страдалецъ
Да зачем перегружать систему дополнительными сервисами, как вы и сказали - планировщик для запуска обычного приложения.

Я почему к сервису больше склоняюсь: бывает такое, что в момент выполнения запланированного запуска программы интернет отсутствует. В итоге обновление курса в БД не происходит.

Сделать запланированное действие раз в час, и в реестре хранить какой-нибудь ключ с информацией о том был ли обновлён курс на сегодняшний день или нет. Тогда всё равно остаётся 60мин, в которых люди не смогут нормально работать.

В конце концов сервис будет висеть на Серверной машине. Я не думаю, что это будет дикий перегруз



Кстати, код для реализации хранения Курса Валют EUR на основе SOAP:
Статья по теме.
Код:
procedure TForm1.GetDailyEUR(Sender: TObject);
var
  DIS: DailyInfoSoap;
  XSDateTime: TXSDateTime;
  Res: GetCursOnDateResult;
  i: integer;
begin
  DIS := GetDailyInfoSoap();

  XSDateTime := TXSDateTime.Create;
  try
    XSDateTime.AsUTCDateTime := Now;
    Res := GetCursOnDateResult.Create;
    try
      with TXMLDocument.Create(Application) do
        try
          Active := True;
          DocumentElement := DIS.GetCursOnDateXML(XSDateTime).XMLNode;
          SaveToFile('DIS.xml');
          for i := 0 to ChildNodes.FindNode('ValuteData')
            .ChildNodes.Count - 1 do
          begin

            if ChildNodes.FindNode('ValuteData').ChildNodes.Nodes[i]
              .ChildNodes.FindNode('VchCode').NodeValue = 'EUR' then
              Caption := ChildNodes.FindNode('ValuteData').ChildNodes.Nodes[i]
                .ChildNodes.FindNode('Vcurs').NodeValue;
          end;
        finally
          Free;
        end;
    finally
      Res.Free;
    end;
  finally
    XSDateTime.Free;
  end;
end;

Последний раз редактировалось Uniq!, 12.08.2014 в 10:41.
Ответить с цитированием
  #4  
Старый 12.08.2014, 10:47
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Забавно, в стандартном планировщике не нашел возможности указать реакцию на ошибку. Если в модных версиях Windows ничего не изменилось, возможность реакции на ошибку -- годный аргумент для написания чего-то своего.
__________________
Не стоит путать форумы с богадельнями. © Bargest
Ответить с цитированием
  #5  
Старый 12.08.2014, 12:17
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Еще можно сделать прогу, которая при отсутствии соединения будет уходить в сон на какое-то время (несколько минут) и пробовать снова несколько раз. Тогда эти 60 минут будут уменьшены до времени восстановления инета + несколько минут (в худшем случае).
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #6  
Старый 12.08.2014, 18:09
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от Uniq!
Я почему к сервису больше склоняюсь: бывает такое, что в момент выполнения запланированного запуска программы интернет отсутствует. В итоге обновление курса в БД не происходит.
тогда и сервис не сможет обновить данные.
при невозможности обновить данные следует повторять попытки.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025