Giter VIP home page Giter VIP logo

Comments (4)

levlam avatar levlam commented on June 19, 2024

Increasing long polling limit is not an option, because It will increase maximum response size and significantly increase bot's latency. If you have a high-loaded bot, then you need to process updates asynchronously and send new getUpdates request immediately after receiving result of the previous getUpdates request. Ping to a local Bot API server or to api.telegram.org from Amsterdam is less than 1 ms, so you can fetch about 100000 updates per second this way.

Manually adjusting offset before receiving getUpdates response is wrong. It is not guaranteed that update IDs are consecutive without gaps.

from telegram-bot-api.

halaei avatar halaei commented on June 19, 2024

If you have a high-loaded bot, then you need to process updates asynchronously and send new getUpdates request immediately after receiving result of the previous getUpdates request.

We're doing as you say. But updates was overflowing yesterday. If it happens again, I check ping as well. Current ping from AWS (N Virgina):

$ ping api.telegram.org
PING api.telegram.org (149.154.167.220) 56(84) bytes of data.
64 bytes from 149.154.167.220: icmp_seq=1 ttl=31 time=81.4 ms
64 bytes from 149.154.167.220: icmp_seq=2 ttl=31 time=81.5 ms

So I currently can get 1226 updates per second. But yesterday I couldn't get 100.

Manually adjusting offset before receiving getUpdates response is wrong. It is not guaranteed that update IDs are consecutive without gaps.

I know. It is just a dirty fix. I removed duplicate updates in my code to not processing an update twice.

Increasing long polling limit is not an option, because It will increase maximum response size and significantly increase bot's latency.

I don't know if increasing response size is an issue for you but it's fine for us. In terms of increasing bot's latency, its going to be far better than what happened yesterday. Our bot was down for an hour and your current implementation can offer nothing better than dropping updates.

I suggest don't changing the default offset, but let it's maximum be a bit more, maybe 500 or 200 if you are not OK with 1000?

from telegram-bot-api.

levlam avatar levlam commented on June 19, 2024

If you have ping of 81 ms, then switching to a local Bot API server, as provided by this repository, could improve performance of your bot. Or you can move the bot to AWS server in Central Europe to significantly reduce ping time.

from telegram-bot-api.

halaei avatar halaei commented on June 19, 2024

Thanks. I look into it. Also I let you know if I detect issues in ping from Europe too.

from telegram-bot-api.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.