• Стоит ли использовать Redis как брокер сообщений?

    sarapinit
    @sarapinit
    Точу водой камень
    Стоит ли его использовать как брокер?

    Я бы рассматривал 2 варианта:
    1) Pub/Sub (о нем уже писали выше) - он особо ничего не гарантирует и не хранит сообщения, если в моменте подписчику не удалось его получить, то уже никогда и не удастся.
    2) Redis Streams (начиная с версии 5.0) это уже ближе к брокерам сообщений, но не полноценный, а скорее набор команд из которых вы можете собрать свой брокер сообщений. Заявлена некая персистентность за счет репликации между репликами, дампов данных на диск и ведения журнала всех операций записи. Насколько это надежно, непонятно, не слышал чтобы кто-то использовал Redis как надежное хранилище данных.
    Ответ написан
    7 комментариев
  • Стоит ли использовать Redis как брокер сообщений?

    У Redis есть две возможности, имеющие отношение к «сообщениям»:
    1. Pub/Sub – паттерн «издатели/подписчики» – сообщение сразу же, как отправили, доставляется всем подписчикам
    2. Lists – списки – просто структура данных в памяти. В «хвост» добавляются новые задачу, рабочие разбирают задачи из «головы».


    Redis Pub/Sub – это доставка сообщений в (почти) реальном времени, но никак не очередь сообщений. Пропустили сообщение, не приняли, подписались позже — не в курсе того, что было. Laravel, разумеется, работает с Redis PubSub.

    Redis Lists можно использовать как хранилище для очередей задач – с командой блокирующего чтения (напр. BLPOP) это больше похоже на *.MessageQueue. См. очереди в Laravel. Команда Redis BLPOP – блокирующая, ждёт появления в списке нового элемента и эксклюзивно его выхватывает. Можно несколько «рабочих» процессов подвесить к одному Redis'у. Будут висеть и ждать появления задач. Кто-то из них получит очередную задачу и займётся её обработкой.
    Ответ написан
    4 комментария
  • Эффективное обучение?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    отличный способ преодолеть фазу обучения в которой Вы увязли - писать программы для себя
    (ну или не только для себя, важно - решать реальную задачу, пусть самую маленькую, но полезную себе или кому то рядом + нужно выбирать то что интересно)

    для начала простые:
    - консольные программы для манипуляции с файловыми обьектами - специфические поиски, бекапирование, поиск мусора для удаления (с этим осторожно ;).. главное что то из того что Вам нужно или интересно
    - консольные программы, которые ходят в интернет и что то там достают.. что то такое что Вы действительно каждый день смотрите на главной странице яндекса или любимой соц сети - температуру воздуха, курс доллара.. все что угодно, но лучше всего - то что вы действительно часто смотрите для себя.. так интереснее..
    - простейшие винформ программы - пересчет чего то во что то.. главное того, что вы действительно часто считаете
    - совместите добычу инфы с вебстраницы с выдачей в винформу
    - напишите программу которая прячется в трей + в фоне проверяет интересную для вас инфу на вебстраницах, и по условию выдает всплывающее сообщение об изменении значения... или просто по интервалу времени - текущее значение
    - напишите кликер для какого то часто выполняемого Вами в вебе действия, используя встраиваемый браузер в винформ и/или WPF

    припомните типовые любые действия которые Вы часто производите за компьютером, и иногда казалось что их можно автоматизировать - и попробуйте это сделать
    (если рядом есть бухгалтеры - попробуйте автоматизировать запуск архивирования базы 1С, или написать плагин для Excel - все это, и многое подобное очень весело делается на C#)

    создайте в LightSwitch для себя базу учета чего то личного - финансов, спортивных показателей... чего угодно, главное что то из того что Вы действительно не прочь учитывать
    .......... а потом переделайте это в полноценную программу уже без LightSwitch

    главное - это переместить внимание от чужих абстрактных задач в учебниках, на что то свое...

    Вы очень быстро заметите, что постоянно возникают вопросы, которые трудно найти в книгах, в хелпе - и научитесь гуглить их..

    Вы быстро заметите, что консольные программы удобны до тех пор, пока решаю одну единственную задачу и выдают инфу по ней, что базовых примитивов винформ/ВПФ не хватает для создания интерфейса даже всего лишь чуть более продвинутого чем примитивный..
    (на этом этапе рекомендую обратить внимание Syncfusion - хотя они у нас несколько менее известны чем DevExpress или Telerik, зато у них есть бесплатная лицензия, при этом библиотеки компонентов весьма богаты, поддерживаю все платформы MS C#, и еще прилагается огромная коллекция метро икон проф качества и тоже...)

    ps
    пример полезных подручных средств - относительно недавно я отказался от инсталлрованных хрома и фаерфокса - загружаю периодически хромиум, а фокс и портабельный умудряется себя апдейтить..
    кроме того у меня более чем по одному профилю для обоих браузеров, скажем так довольно много..
    и задаю я их в командной строке..

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

    удачи в обучении! ;)
    Ответ написан
    Комментировать
  • Где можно посмотреть примеры графических интерфейсов с JAVAFX?

    SoftDeveloper
    @SoftDeveloper
    Разработчик прикладного программного обеспечения
    Для примера, мой не законченный проект на JavaFX 8

    43254c416b184446ad20eb116a4f3c2e.pngc9da87803fdc4aadbad668639a3644e1.png01d8df12feb546f4bc431f3d746532c8.png0925fe27d8f74fa992cdc7b3d6d0a335.png
    Ответ написан
    1 комментарий
  • Есть ли преимущество Java над Python для веб-приложения?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Главное преимущество и проклятие скриптовых языков - их динамическая природа. С одной стороны это даёт быстрый цикл разработки, а с другой утяжеляет поддержку крупных проектов. В строготипизорванной Java большая часть ошибок, особенно глупых, уходит на этапе компиляции. С другой стороны, чтобы запустить простой проект на Java придётся выполнить много лишних телодвижений. Ну и всем известная смешная картинка
    java-stack.jpg

    Поэтому лучше выбирать инструмент под задачу, не забивать кувалдой шпильки и не стучать ювелирным молоточком по железнодорожному костылю.
    Ответ написан
    2 комментария