Ответы пользователя по тегу Алгоритмы
  • Как реализовать алгоритм экспайринга элементов в базе данных?

    @Akela_wolf
    Extreme Programmer
    Зачем так сложно?

    В БД делаем поля
    status - статус таска (NEW, COMPLETED)
    assignee - исполнитель
    scheduled - дата до которой исполнитель должен предоставить результат.

    Когда выбираем список задач для взятия - используем условие
    (status = NEW) AND (assignee IS NULL /*не назначена*/ OR scheduled < NOW() /*истекла*/)

    Когда пользователь пытается сохранить результат - проверяем что исполнитель он и что таска не истекла. Если условие не выполнено - не даем сохранить.

    И никаких демонов, тем более каждую секунду.
    Ответ написан
  • Какой оптимальный алгоритм для однозначного определения слагаемых в сумме?

    @Akela_wolf
    Extreme Programmer
    Самое простое - шифруйте последние 2 цифры номера заказа как копейки в сумме платежа. Или 3 цифры - как последняя цифра рублевой суммы + копейки. Уникальности не будет, но сократить количество кандидатов в 100-1000 раз может оказаться вполне достаточно для вашей задачи.

    Но это такое себе решение. Вообще у наложенного платежа (а бланк наложенного платежа, по идее, готовите вы как отправляющая сторона) есть поле "назначение". И почта обязана вам его отдавать вместе с платежом. Что мешает вписать в назначение номер заказа в вашей системе? "Оплата заказа #XXX-YYY-ZZZZ" или как-то так.
    Ответ написан
    Комментировать