Задать вопрос
  • Почему Clickhouse читает много строк?

    @David5 Автор вопроса
    Сделал мат. представление с агрегацией 1 минута, далее можно из нее сделать 5 минут, 1 час и тд, работает быстро
    client.query("""
    CREATE TABLE IF NOT EXISTS angc3_aggregated_15sec (
        ts DateTime64(0, 'UTC'),
        name LowCardinality(String),
        count_value UInt64,
        sum_value Float64,
        avg_value ALIAS sum_value / NULLIF(count_value, 0)
    )
    ENGINE = AggregatingMergeTree()
    ORDER BY (name, ts)
    PARTITION BY toYYYYMM(ts);""")
    
    
    client.query("""
    CREATE MATERIALIZED VIEW IF NOT EXISTS mv_angc3_aggregate_15sec
    TO angc3_aggregated_15sec
    AS
    SELECT
        toStartOfInterval(ts_kafka, INTERVAL 15 SECOND) AS ts,
        name,
        count() AS count_value,
        sum(value) AS sum_value
    FROM angc3_raw_data
    GROUP BY name, ts;
    
    """)

    PS: в коде агрегация по 15 секунд
    Ответ написан
    Комментировать
  • Не прилетают сообщения по websocket из celery?

    @David5 Автор вопроса
    если кому нужно, я решил так
    с этого
    CHANNEL_LAYERS = {
        'default': {
            'BACKEND': 'channels.layers.InMemoryChannelLayer'
        }
    }

    пересел на это
    CHANNEL_LAYERS = {
        'default': {
            'BACKEND': 'channels_redis.core.RedisChannelLayer',
            'CONFIG': {
                "hosts": [('redis', 6379)],
            },
        },
    }

    теперь все соощения летают в redise и не теряеются в памяти
    Ответ написан
    Комментировать
  • При использование пагинации столкнулся с ошибкой Cannot filter a query once a slice has been taken?

    @David5 Автор вопроса
    применил нарезку после вызова функции, не нашел других способов
    вот так

    def cards_product(request):
    
    
        cards_product =  CardsProduct.objects.filter(arhiv='active')
      
    
       
        fn_best_price(cards_product.object_list)
    
        cards_product =  Paginator(cards_product, 7).page(1)
    Ответ написан
    Комментировать
  • Распределение задач в django?

    @David5 Автор вопроса
    Спасибо за советы, но мне нужно было просто while True засунуть в отдельный поток
    не хотел возится с разными контейнерами и тд
    сделал вот так, не знаю как это правильно или нет, но работает
    def main():
        while 1:
            for i in Profiles.objects.all():
                current = time.time()
                current = str(current).split(".")[0]
    
                period_time = int(i.unix_date) + (int(i.period) * 60) * 60
    
                if period_time < int(current): 
                    period(start_profil=i)
                    
    
                    current = time.time()
                    current = str(current).split(".")[0]
    
                    Profiles.objects.filter(name=i).update(unix_date=int(current))
    
                
            time.sleep(1000)
    
    
    a = Thread(target=main)
    a.start()
    Ответ написан
  • Почему не приходит ip?

    @David5 Автор вопроса
    все получилось, через request.META['HTTP_X_REAL_IP']
    Ответ написан
    Комментировать
  • Как сделать фильтрацию по категориям?

    @David5 Автор вопроса
    я решил проблему таким образом
    def category_detail(request, slug):
        cat = Categories.objects.get(slug__iexact=slug)
        products = Product.objects.filter(category__slug = slug)
        return render(request, 'shop/category_detail.html', {'cat':cat, 'products':products})
    Ответ написан
    Комментировать