Comments (4)
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.
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.
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.
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)
- [Question]: Is `ChatJoinRequest.invite_link` always null for public groups? HOT 1
- How legal is using getChannelDifference for public channels HOT 5
- hajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar
- Does telegram-bot-api still not support uploading files up to 4G? HOT 7
- How to create a service on Ubuntu HOT 1
- Tgram.api
- http proxy does not work! HOT 1
- Message entities are not preserved by `editMessageText` and `editMessageMedia` HOT 2
- Request: Add Possibility for bot to publish/maintain stories in Channels
- NOT: User.language_code described at IETF but only being used as ISO-639? HOT 3
- How should I apply for the API HOT 4
- How can I be sure that Telegram BOT API local server is running properly? HOT 4
- Blockquote HTML syntax issues HOT 1
- pending_update_counts delay HOT 15
- get 404 error on download file! HOT 11
- Bot latency HOT 6
- Failed to forward message: 'Bad Request: message thread not found' HOT 7
- Persistent "ERROR" When Creating Telegram Application HOT 6
- Change the maximum upload size HOT 1
- not able to set more webhooks! HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from telegram-bot-api.