• Как правильно написать sql запрос?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Найти все комментарии, оставленные за 24 часа, получить список ID менеджеров, оставивших эти комментарии и выбрать всех менеджеров, чьи ID не попадают в этот список.
    Ответ написан
    Комментировать
  • Как в связке nginx+php71-fpm+yii настроить очередь запросов?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    и отдает он очередью именно этому клиенту, если параллельно буду заходить на сайт с другого окна из режима инкогнито у него своя очередь и страницы будут открываться

    Похоже на то, что к файлу сессии параллельно не может доступ получить другой процесс. Обычно для решения похожих проблем сессии выносят в тот же Redis.
    Но и тут могут быть проблемы: https://habr.com/ru/post/318836/
    Ответ написан
    1 комментарий
  • Как удалить повторяющися значения но оставить самый первый?

    adugin
    @adugin Куратор тега Python
    from itertools import groupby
    from operator import itemgetter
    
    # sid, symbol, rank
    data = [
        (36, 'abc', 5158),
        (35, 'aaa', 4023),
        (44, 'aaa', 3756),
        (171, 'alc', 3262),
        (179, 'soc', 701),
        (42, 'abs', 3879),
        (43, 'abs', 531),
    ]
    
    def max_unique_rank(data):
        _sid, _symbol, _rank = range(3)
        filtered = sorted(data, key=itemgetter(_symbol, _rank), reverse=True)
        filtered = groupby(filtered, key=itemgetter(_symbol))
        filtered = [next(group) for _, group in filtered]
        return filtered
    
    max_unique_rank(data)

    Результат:
    [(179, 'soc', 701),
     (171, 'alc', 3262),
     (42, 'abs', 3879),
     (36, 'abc', 5158),
     (35, 'aaa', 4023)]

    Вариант с сохранением порядка и прозрачной логикой:
    cache = {}
    for sid, symbol, rank in data:
        _sid, _rank = cache.get(symbol, (sid, rank))
        if _rank <= rank:
            cache[symbol] = (sid, rank)
    filtered = [(sid, symbol, rank) for symbol, (sid, rank) in cache.items()]

    Одной строкой:
    {symbol: (sid, symbol, rank) for sid, symbol, rank in sorted(data, key=itemgetter(2))}.values()
    Ответ написан
    Комментировать
  • Как лучше собрать статистику соединений между 50+ серверами?

    @vlarkanov
    в iptables логировать факты установки соединений (что-то типа описание_того_что_считаем_установленным_соединением -j LOG --log-prefix "Connection established"). Данные со всех серверов собирать с помощью Filebeat в ELK (Elasticsearch + Logstash + Kibana) для последующего анализа и визуализации.
    Ответ написан
    Комментировать