|   |   | 
| 
 | выявление момента времени для запуска на выполнение кода | ☑ | ||
|---|---|---|---|---|
| 0
    
        LivingStar 11.03.15✎ 17:43 | 
        Задача, сделать рассылку смс за 8 часов и за 1 час. Есть регламентированное задание которое запускается примерно каждые 3 минуты. В нем делается запрос документов в течении года. Высчитывается дата от которой нужно делать отправку смс:
 | ДатаВремяОтправки = ДатаДок - КолЧасов * 3600; | как действовать потом? Как выявлять момент что текущая дата уже за 8 часов от ДатаВремяОтправки, и выполнить необходимый код. Или же что текущая дата за 1 час от ДатаВремяОтправки и так же выполнить код делающий отправку смс? | |||
| 1
    
        D_E_S_131 11.03.15✎ 17:46 | 
        Может разделить процесс на 2 части?
 1. Определяет время отправки для документов и хранит его где-то. 2. Выбирает документы с временем отправки < ТекДата() и еще не отправленные, отправляет смс, отмечает доки как отправленные. | |||
| 2
    
        DexterMorgan 11.03.15✎ 18:00 | 
        ТС давно тебя не слышно! Рассылка каждые три минуты документов за год это пять!     | |||
| 3
    
        D_E_S_131 11.03.15✎ 18:01 | 
        (2) Не ну а что такого? Шлются себе они и шлются.     | |||
| 4
    
        LivingStar 11.03.15✎ 18:02 | 
        (1) да пока решаю все делать в одном месте
 можно же так. ВремяОтправки определяю без проблем. Можно на лету высчитывать, хранить не обязательно. С этим проблем нет. я выбираю за год документы пока, и высчитывая ДатуОтправки нужно как то сейчас при запуске каждую 3 минуту определять ДатаОтправки примерно за 8 ли часов или за час, и выполнять код или нет | |||
| 5
    
        LivingStar 11.03.15✎ 18:03 | 
        (3) да при отправке смс нужно исключить не верные отправки, и не отправки. Что бы четко отправлялись за 8 часов и за 1 час. Как то высчитывать это. Подошло им время или нет. Думаю погрешность 5 минут там, или сколько не страшна.
 Но как так просчитывать не пойму..... | |||
| 6
    
        H A D G E H O G s 11.03.15✎ 18:06 | 
        (0) Здорово! Давно тебя не видел, как сам, как код?     | |||
| 7
    
        LivingStar 11.03.15✎ 18:06 | 
        (1) процесс можно разделить хоть на сколько частей, важно что бы был алгоритм известен. Мне сейчас не известен как просчитывать сам момент отправки и выполнять код или нет.
 Ясно что в пересчете этом фигурируют 2 даты, ДатаВремяОтправки и ТекущаяДата() Учитывая что отбираю документы в пределах года, ДатаВремяОтправки могут быть любыми | |||
| 8
    
        D_E_S_131 11.03.15✎ 18:08 | 
        "Мне сейчас не известен как просчитывать сам момент отправки" — как регл.задание запускается, так и наступает "момент отправки".
 "...и выполнять код или нет." — я предложил это сделать по условию "подошла дата отправки и еще не отправлен". | |||
| 9
    
        LivingStar 11.03.15✎ 18:12 | 
        (8) я так пробовал, но меня смутило то что вообще ничего не отправилось (((
 У меня в цикле перебираются документы, известна ДатаОтправки так как её проверять? | |||
| 10
    
        D_E_S_131 11.03.15✎ 18:15 | 
        А документы у тебя перебираются всегда все с начала года?     | |||
| 11
    
        LivingStar 11.03.15✎ 18:15 | 
        (8) документы в выборке те по которым не отправлено смс     | |||
| 12
    
        D_E_S_131 11.03.15✎ 18:16 | 
        (11) Т.е. где-то отметка о том, что этот док-т отправлен все-таки ставится?     | |||
| 13
    
        LivingStar 11.03.15✎ 18:18 | 
        (10) в выборке делаю отбор по нужной дате, это не дата документа. Поставил что первая начало года, вторая текущая, конец дня.
 (12) у документа есть тч, отправленные смс, там дата и кто отправил, и ещё колонка, отправленоЗа, так в эту колонку будет проставляться 8 или 1 (8 часов или час). И потом они ну будут уже попадать в запрос. | |||
| 14
    
        D_E_S_131 11.03.15✎ 18:20 | 
        А ТЧ для чего? Док-т несколько раз может отправляться?     | |||
| 15
    
        LivingStar 11.03.15✎ 18:24 | 
        (14) решил в эту тз писать, что была отправка за 8 часов или за час
 по документу может отправляться за 8 часов и за 1 час | |||
| 16
    
        LivingStar 11.03.15✎ 18:25 | 
        сделать можно как угодно, но говорю, пока не понятно как отправлять, как высчитать что ДатаВремяОтправки попала в промежуток за 8 часов и выполнить отправку и так же за час?     | |||
| 17
    
        LivingStar 12.03.15✎ 06:38 | 
        есть у кого соображения по моменту отправки смс, как он должен высчитываться? что бы отправка производилась только тем документам по которым она от 8 часов и от 1 часа.     | |||
| 18
    
        patria0muerte 12.03.15✎ 06:50 | 
        Как вариант - два регистра и справочник со значениями интервалов отправки (за 8 часов, за час, за x времени):
 В первом РС хранить список доков на отправку с интервалами и периоды отправки. При удачной отправке - очищать записи за определенный период Во втором (хотя чуется мне, что он нафиг не нужен) - можно хранить историю отправки... А моменты, когда нужно отправлять - фиксируй сразу при записи документа и пиши в первый РС. А его уже чеши Рег.Заданием. | |||
| 19
    
        LivingStar 12.03.15✎ 06:52 | 
        как вам вот такое решение?
 Если ДатаВремяОтправки < ТекущаяДата() и ДатаВремяОтправки > ТекущаяДата()-60*(КолЧасов*60) Тогда ДатаВремяОтправки становится меньше ТекущаяДата() и ДатаВремяОтправки больше ТекущаяДата() минус час или 8 часов то есть как только ДатаВремяОтправки попадает в промежуток за 8 часов или за 1 час в который нужно отправить смс, так как регламентное задание выполняется примерно каждые 3 минуты, погрешность будет не большая | |||
| 20
    
        LivingStar 12.03.15✎ 06:53 | 
        (18) да вопрос в том что бы как это время отправки высчитывать??? вот идея появилась в (19) верная ли?     | |||
| 21
    
        patria0muerte 12.03.15✎ 07:17 | 
        Как... прибавил нужную цифру к дате и записал в регистр, типа как план рассылки... нафига каждый раз рег заданием лопатить все документы и динамически все даты рассчитывать... А если допустим в течении 2х часов ляжет рег. задание... по твоему методу - то что должно было отправиться в эти 2 часа - никуда не улетит впринципе...     | |||
| 22
    
        LivingStar 12.03.15✎ 07:20 | 
        (21) а вы как предлагаете? по кнопке отправлять?     | |||
| 23
    
        LivingStar 12.03.15✎ 07:21 | 
        (21) задача что бы это выполнялось автоматически     | |||
| 24
    
        LivingStar 12.03.15✎ 07:23 | 
        (21) как все же вы представляете момент отправки смс???? перибираются документы за неопределенный период, за год, и как выявлять каким отправлять смс??? учитывая то что смс им должно быть отправлено за 8 часов  и за час от определенной даты и никак иначе?!!!     | |||
| 25
    
        patria0muerte 12.03.15✎ 07:25 | 
        А про рег. задание тебе я еще в (18) писал... 
 Суть в том, чтобы даты и время отправки рассчитывать и хранить в регистре заранее. а уже рег. задание выберет из него все, что <= текущей даты и сформирует оповещения (или что там тебе надо) Дальнейшее обсуждение с тобой бессмысленно, всегда пожалуйста.. | |||
| 26
    
        patria0muerte 12.03.15✎ 07:26 | 
        И вообще, все что я писал - сказали тебе еще в (1)     | |||
| 27
    
        LivingStar 12.03.15✎ 07:31 | 
        (26) Выбирает документы с временем отправки < ТекДата() 
 - говорю же у массы документов дата отправки меньше чем текущая дата, и им ненужно ничего отправлять | |||
| 28
    
        patria0muerte 12.03.15✎ 07:34 | 
        Ну так фиксируй не все документы, а только нужные. Чувак - тебе дали концепцию - дальше барахтайся в ней сам и делай как хочешь     | |||
| 29
    
        ShoGUN 12.03.15✎ 07:34 | 
        (27) А по какому условию тогда выбираются документы? 
 Не задача, а шиза какая-то... | |||
| 30
    
        ShoGUN 12.03.15✎ 07:35 | 
        Точней задача может и нормальная, но (0) не хочет её говорить, а решение - шиза.     | |||
| 31
    
        LivingStar 12.03.15✎ 07:40 | 
        (29) за год говорю выбираются, при учете что кт ото мог заказать услугу в начале года на исполнение в середине
 условие отправки в (19) как думаете нормальное? | |||
| 32
    
        ShoGUN 12.03.15✎ 07:55 | 
        (31) Чему в (19) равна ДатаВремяОтправки? Как она вычисляется? Если как в (0) - то условие в (19) никогда не выполнится.     | |||
| 33
    
        LivingStar 12.03.15✎ 09:05 | 
        (32) Почему не выполнится???? В ноль от даты услуги, отнимается либо 8 часов либо час. получается дата меньше на 8 часов или на час. Почему условие в (19) никогда не выполнится?     | |||
| 34
    
        ShoGUN 12.03.15✎ 09:07 | 
        (33) Контекст того, что ты хочешь - мне лично непонятен. Что такое "дата услуги"? Это дата документа? Или ещё какая-то дата?
 ЯННП. | |||
| 35
    
        hhhh 12.03.15✎ 09:20 | 
        (0) всё-таки жестоко так поступать с клиентами. Например, он сделал заказ год назад, он уже про это давным давно забыл. И вдруг приходит смс-ка, забирайте в течение часа. Да он копыта может откинуть от нервного стресса. Надо, думаю предупреждать хотя бы за неделю.     | |||
| 36
    
        LivingStar 12.03.15✎ 09:23 | 
        (34) Это не дата документа, это время к которой назначено выполнение услуги. Задача отправить смс заказчику за 8 часов и за 1 час. В (0) вычисление дат отправки, за 8 часов или за 1 час, в зависимости от значения КолЧасов.
 В (19) сверка этой даты отправки смс за 8 часов или за 1 час. Находится ли дата отправки документа в этом интервале или нет. Если находится, то производится отправка смс, и запись значения в тч документа, для исключения его в дальнейших выборках. Как понимаю если условие в (19) работает, что осенило меня сегодня и не нужно больше над этим ничего мудрить, то можно запускать в работу или продумывать прописку этого все в регистры там и прочее, что бы не считать динамически. Хотя и так можно. | |||
| 37
    
        LivingStar 12.03.15✎ 09:24 | 
        (35) Да с менеджментом же все зафиксировано там. Если заказ не актуальный он и делается не актуальным!!! В запросе сейчас к сатти нужно добавить будет эти условия, спасибо что напомнили!!!     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |