Контакты

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (20)

Лучшие ответы пользователя

Все ответы (28)
  • Как лучше развернуть Zabbix (OS, ТИП)?

    @kiriharu
    Python backend, Linux enjoyer
    Смотря для какого количества хостов будет развертываться zabbix и что на нём будет использоваться. Для ваших исходных данных я бы рекомендовал развернуть несколько zabbix-proxy (идеально - для каждого филиала свой), данные отправлять на zabbix-server с базой PostgreSQL (с ней он себя чувствует намного лучше).

    ОС не слишком важна - Zabbix прекрасно себя чувствует как на Ubuntu, так и на CentOS. Тут скорее вопрос в том, какая ОС для вас ближе. Для меня лично из них нет разницы - поднимал на обоих, оба себя чувствуют прекрасно по сей день.

    Развертывать лучше из пакетов, если вы будете знать, что на данном сервере живет только zabbix и всё. Контейнеры скорее подойдут для быстрого поднятия инфраструктуры, но как я вижу - это скорее не ваш случай.
    Ответ написан
    Комментировать
  • Как работает запуск корутин в asyncio?

    @kiriharu
    Python backend, Linux enjoyer
    При создании задачи при помощи asyncio.create_task она немедленно (при ближайшем переключении контекста, например при встрече await) начинает выполняться в цикле событий. Именно поэтому у тебя в первом примере сразу же стартанули все указанные задачи.

    await же, указанный в твоем коде, позволяет ожидать завершения задачи. Поэтому в твоем коде второго примера ты создаешь задачу, ждешь её выполнения и только потом переходишь к следующей:

    async def main():
        tasks = []
    
        for _ in range(10):
            task = asyncio.create_task(waste_time()) # создаем задачу
            tasks.append(task)
            await task # ожидаем выполнения
            # итерация завершена, переходим к следующей


    Если хочется запустить сразу все задачи, то тут было бы правильнее воспользоваться asyncio.gather, которая как раз будет ожидать выполнения всех задач:

    import asyncio 
    from time import time, sleep
    
    
    async def waste_time():
        print("Start work...")
        await asyncio.sleep(2)
        print("End work!")
    
    async def main():
        tasks = []
        for _ in range(10):
            task = asyncio.create_task(waste_time())
            tasks.append(task)
        await asyncio.gather(*tasks)
    
    asyncio.run(main())
    Ответ написан
    2 комментария
  • Как найти работу удалённо без опыта мамкиному фронтенд девелоперу?

    @kiriharu
    Python backend, Linux enjoyer
    Н и к а к.

    Таких как вы - тысячи. И эти тысячи конкурируют за шаблон для какого-то говносайта за 500 рублей. Оно вам надо? Вы себя цените вообще?
    Советую сначала поделать сайты для друзей, воплощать самые идиотские идеи, а потом набравшись опыта идти работать в ОФИС. Это обязательно, ибо там вы получите огромный опыт. Благо вакансий на веб сейчас огромное количество, без работы не останетесь.

    Забудьте про фриланс пока не наберете довольно огромное портфолио или не найдете нишу, где вы делаете что-то лучше чем другие.
    Ответ написан
    5 комментариев
  • Как с помощью telethon отправить сообщение с ссылкой в тексте?

    @kiriharu
    Python backend, Linux enjoyer
    Для этого вам нужно воспользоваться форматированием текста. Есть несколько способов это сделать - через Markdown или через HTML.
    Вот пример в офф. документации:

    client.send_message('me', '<a href="tg://user?id=me">Mentions</a>', parse_mode="html")
    Ответ написан
    Комментировать
  • Почему бот выводит function at 0x?

    @kiriharu
    Python backend, Linux enjoyer
    Потому что вы передаете объект функции, а не вызываете её.
    А еще, вам нужно убрать в return функцию print - она просто выводит данные на экран.

    Вроде как правильный код:

    import telebot, requests, bs4
    from bs4 import BeautifulSoup
    
    bot = telebot.TeleBot("TOKEN")
    
    def pars():
        page_link = 'https://random.cat/'
        response = requests.get(page_link)
        html = response.content
        soup = BeautifulSoup(html, 'html.parser')
        obj = soup.find('img', attrs={'id': 'cat'})
        return obj.attrs['src']
        
    @bot.message_handler(commands=['rcat'])
    def randomcat(message):
        bot.send_message(message.chat.id, pars())
    
    bot.polling(none_stop=True)
    Ответ написан
    Комментировать