подскажите логику

dsefros

Client
Регистрация
24.02.2016
Сообщения
56
Благодарностей
1
Баллы
8
Добрый день. не могу догнать как реализовать следующее:
есть база аккаунтов в таблице с которых должны выполняться определенные действия 1 раз в сутки.
проект может останавливаться, и при повторном запуске он заходит на каждый акк и проверяет выполнено действие или нет, на это уходит много времени, было бы проще добавить в ячейку таблицы символ, по которому понять что СЕГОДНЯ действие уже делалось и пропускать этот акк сразу, не заходя на него.
как научить программу понимать что сегодня(до этого же времени следующего дня) заходить на аккаунт больше не нужно?
заранее спасибо!
 
Последнее редактирование:

alerzo

Client
Регистрация
29.02.2012
Сообщения
134
Благодарностей
3
Баллы
18
Добавьте в таблицу еще одну ячейку, например с двумя параметрами 0 и 1. После успешного обхода помечайте аккаунт в столбце единицей. При каждом заборе аккаунта проверяйте что именно стоит в столбце 0 или 1. Если 0 - делаем действие, после помечаем 1-цей, если 1 - пропускаем аккаунт
 

alerzo

Client
Регистрация
29.02.2012
Сообщения
134
Благодарностей
3
Баллы
18
Ну или как вариант заморочиться с датой, сравнивать часы..но здесь будет по сложнее..
 

dsefros

Client
Регистрация
24.02.2016
Сообщения
56
Благодарностей
1
Баллы
8
Если 0 - делаем действие, после помечаем 1-цей, если 1 - пропускаем аккаунт
ну а как программа поймет когда снова нужно делать действие ? ваш способ научит ее только пропускать аккаунты
 

dsefros

Client
Регистрация
24.02.2016
Сообщения
56
Благодарностей
1
Баллы
8
Ну или как вариант заморочиться с датой, сравнивать часы..но здесь будет по сложнее..
это тоже обдумывал, но как то громоздко все выходит. хорошо бы аккуратное решение ))
 

alerzo

Client
Регистрация
29.02.2012
Сообщения
134
Благодарностей
3
Баллы
18
Тогда помечать текущую дату обхода и сравнивать с текущим временем..если больше 24ч - брать аккаунт, иначе пропускать..после обхода брать заново.
 

alerzo

Client
Регистрация
29.02.2012
Сообщения
134
Благодарностей
3
Баллы
18
Почему громоздко? вместо 0 и 1-ц будет просто число даты....условие просто другое будет
 

dsefros

Client
Регистрация
24.02.2016
Сообщения
56
Благодарностей
1
Баллы
8
например действие было выполнено в 22.00 и на следующий день в 08.00 шаб снова наткнулся на аккаунт. дата новая, а действие выполнять не нужно.
т.е. нужна сперва проверка на дату а потом на время.
так...можно же сделать так:
записывать час и дату после выполнения. проверяем дату, если больше - идем дальше, проверяем время, если текущий "час" больше того что в таблице - выполняем
 

alerzo

Client
Регистрация
29.02.2012
Сообщения
134
Благодарностей
3
Баллы
18
..дата уже будет включать и дату и год и месяц и час и минуту и секунду.. и сравнение будет работать четко.
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
824
Баллы
93
Если (текущее время - дата прошлого выполнения)>24 часов {
работаем
}
 

dsefros

Client
Регистрация
24.02.2016
Сообщения
56
Благодарностей
1
Баллы
8
и сравнение будет работать четко.
Если (текущее время - дата прошлого выполнения)>24 часов {
работаем
}
каким то действием одним можно выполнить это сравнение ?
или отдельно дату, отдельно время(минуты не обязательно, часов хватит)
 

alerzo

Client
Регистрация
29.02.2012
Сообщения
134
Благодарностей
3
Баллы
18

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
824
Баллы
93
пример с нета и адаптация:
Код:
TimeSpan difference = firstDateTime - secondDateTime;

if (difference.TotalHours>24){
//работаем
}
 

dsefros

Client
Регистрация
24.02.2016
Сообщения
56
Благодарностей
1
Баллы
8
спасибо.
подглядел решение на js

var date = new Date("{-Variable.time-}");
var date2 = new Date("{-TimeNow.Date-}");
(date2 - date)/1000/36000;

выдает сколько прошло часов
 

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)