• Как реализовать отправку email за определенный срок до события?

    @Rukis Автор вопроса
    vism,
    1 раз в 10 минут заходите в БД и делаете выборку, где время отправки события меньше текущего и сообщение не было добавлено в очередь(новое) и добавляете в очередь

    Крон сработал, задача попала в очередь, пользователь перенес событие на 5 минут (назад или вперед), как предложите разрулить эту ситуацию? Если задача должна сама решать будет она выполнять свою работу или нет, то для чего вообще крон? Поставили задачу сразу на определенное время, время пришло, задача сама всё проверила, отменилась или выполнила работу. С какой целью уже фактически отмененная задача должна висеть в очереди, срабатывать и что то проверять, хотя ее можно просто удалить из очереди?

    Вы жестко завязываете работу приложения на другую софтину.

    О, поделитесь, каким драйвером очередей вы порекомендуете воспользоваться, но чтоб он работал не через "другую софтину" или внешний сервис?
  • Как реализовать отправку email за определенный срок до события?

    @Rukis Автор вопроса
    vism, не знаю с чего вы это решили, ни о чем подобном я не говорил. Все события в одной таблице.
  • Как реализовать отправку email за определенный срок до события?

    @Rukis Автор вопроса
    В целом совершенно даже не смутило, что нет такой функциональности через компонент и приходится костылить через Beanstalkd?

    vism, Beanstalkd - это драйвер очереди и Laravel его поддерживает. В чем вопрос?
  • Как реализовать отправку email за определенный срок до события?

    @Rukis Автор вопроса
    vism, вы мне будете говорить где работать? Разве я просил? Вопрос был в другом, не отклоняйтесь от темы.

    Если вы определили, что я не умею строить архитектурные решения, то легко определите и предложите верное. А заодно сможете объяснить чем плохо использовать очередь как предложил я. Или не сможете?

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

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

    Если не запускать задачу по крону часто, а как вы предложили "раз в 10 минут", то как быть в ситуациях, когда крон поставил задачу в очередь, а через несколько минут событие было перенесено пользователем на другое время? В этом была изначальная проблема, если вы конечно читали мой вопрос.
  • Как реализовать отправку email за определенный срок до события?

    @Rukis Автор вопроса
    JhaoDa, Да, так и делаю. Интересует нет ли каких то других способов.
  • Как реализовать отправку email за определенный срок до события?

    @Rukis Автор вопроса
    vism,
    Несколько лет, а вы? Понятное дело, что очереди используют обычно не так, и сам использую их для фонового выполнения объемных задач. Но почему это значит, что нельзя использовать очередь для отложенного выполнения задачи, при том, что есть прямой функционал позволяющий это делать? И у меня возникает вопрос, разве крон не будет говнокодом? Вы же сами сказали что это извращение. В чем необходимость то долбить БД каждые пару минут?

    Крон уж точно не для этого придуман, не для периодического дерганья системы в надежде поймать нужное время для выполнения задачи... это же костыль просто, который в некоторых случаях вообще не применим. Что предложите, если запрос к БД слишком ресурсоемкий, а выполнять его придется каждую секунду, чтобы вовремя отловить время?

    Использовать крон по назначению - это добавлять в него конкретную задачу, а не вызов чего то, что будет проверять "а не пора ли?". Но так как нельзя добавлять задачи пользователей прямо в список крон, надо применить такой инструмент, с которым так работать можно. Например Beanstalkd.

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

    @Rukis Автор вопроса
    Почему же не для этого? Специально же есть возможность размещения отложенного задания в очереди. Или есть какие то другие варианты кроме очереди? У меня множество пользователей с множеством задач, получается крон будет каждые 10 минут переться в БД и делать выборку по всем событиям всех пользователей... А если нужна точность не 10 минут, а минута или даже несколько секунд... То есть происходит перенос очереди в БД, но в чем профит? Только нагрузка лишняя...

    В случае встроенного функционала очередей и Beanstalkd получается ровно 1 запрос ровно в назначенное время. Я уже реализовал при этом требуемый функционал (удаление задачи и создание новой, при переносе события), но мне показалось что решение не очень красивое и должно существовать получше. Храню в бд ид задачи из очереди, при изменении времени удаляю старую задачу, создаю новую.
  • Подойдет ли wildcard ssl сертификат?

    @Rukis Автор вопроса
    Boris Korobkov, поддомены создаются самими юзерами из приложения, без перезапусков, мгновенно. Число пользователей не ограничено, так же как и поддоменов. А хост nginx 1 на все поддомены.

    Владимир Муковоз, да вы правы, Let's конечно хорош, но в этой ситуации слишком всё усложняется.
  • Подойдет ли wildcard ssl сертификат?

    @Rukis Автор вопроса
    У Let's Encrypt нет wildcard
  • Подойдет ли wildcard ssl сертификат?

    @Rukis Автор вопроса
    Алекс Арт, хост один. Поддомен передается в приложение и дальше всё разруливается им.
  • Подойдет ли wildcard ssl сертификат?

    @Rukis Автор вопроса
    А если используется универсальный хост для всех поддоменов?
  • Mysql как сделать поле альтернативной нумерации?

    @Rukis Автор вопроса
    Спасибо, вариант. Что насчет существующих записей?