public inbox for [email protected]
 help / color / mirror / Atom feed
From: Muhammad Rizki <[email protected]>
To: Ammar Faizi <[email protected]>
Cc: Alviro Iskandar Setiawan <[email protected]>,
	GNU/Weeb Mailing List <[email protected]>
Subject: Re: [PATCH v1 03/13] refactor(telegram)!: Ensure the Telegram bot has been started
Date: Tue, 3 Jan 2023 19:17:04 +0700	[thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>

On 03/01/2023 13.54, Ammar Faizi wrote:
> On 1/3/23 1:36 PM, Muhammad Rizki wrote:
>> @@ -58,9 +59,11 @@ def main():
>>           scraper=Scraper(),
>>           mutexes=BotMutexes()
>>       )
>> -    sched.start()
>> +
>> +    client.start()
>>       bot.run()
>> -    client.run()
>> +    idle()
>> +    client.stop()
> 
> I agree to have an 'idle()' call, but it addresses a different issue
> w.r.t. the patch subject. Please split the 'idle()' patch into a
> separate patch.
> 

No, we should use this method rather than `client.run()`. Why? because 
at the previous commit, we use `client.run()` after the `bot.run()` 
which is the `bot` here is running first before the Telegram bot is 
started/connect to the Telegram MTProto API, previous commit:

	sched.start()
	
	bot.run() 	<- we listen for new emails, if error may
			happen, the listener will send the log file
			which is require to interact with the Telegram
			API.
	
	client.run()	<- The client is late to start/connect to the
			Telegram API.


So, my solutions is to use this method:

	client.start()	<- We start/connect to the Telegram API first.

	bot.run()	<- Then, we listen for new emails, if error may
			happen, the bot is already connected to the
			Telegram API to send the log file.
	
	idle()		<- We idle the bot to keep interact with the
			Telegram API.
	
	client.stop()	<- Stopped when CTRL + C or SIGINT.


What do you think?

> My understanding is that the reason for the 'idle()' call is to make the
> program gracefully exits when it's interrupted (e.g., SIGINT with
> CTRL + C), then you have a chance to call 'client.stop()', which could
> be a necessary cleanup to stop the app.
> 
> Is my understanding correct?
> 

Yes.

  reply	other threads:[~2023-01-03 12:17 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-03  6:36 [PATCH v1 00/13] Improvements, refactors, and features Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 01/13] refactor(discord): Remove unnecessary try/except block Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 02/13] refactor(telegram): Move report_err() to the DaemonClient() class Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 03/13] refactor(telegram)!: Ensure the Telegram bot has been started Muhammad Rizki
2023-01-03  6:54   ` Ammar Faizi
2023-01-03 12:17     ` Muhammad Rizki [this message]
2023-01-03 22:11       ` Ammar Faizi
2023-01-03 22:27         ` Alviro Iskandar Setiawan
2023-01-03 22:28           ` Ammar Faizi
2023-01-04  6:31           ` Muhammad Rizki
2023-01-04  6:39             ` Alviro Iskandar Setiawan
2023-01-04  6:50               ` Muhammad Rizki
2023-01-04  6:50               ` Ammar Faizi
2023-01-04  7:02                 ` Alviro Iskandar Setiawan
2023-01-04  7:05                   ` Ammar Faizi
2023-01-03  6:36 ` [PATCH v1 04/13] feat: add DaemonException() class Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 05/13] feat(telegram): Implement the " Muhammad Rizki
2023-01-03  7:09   ` Ammar Faizi
2023-01-03  6:36 ` [PATCH v1 06/13] refactor(telegram/mailer)!: Remove unnecessary try/except block Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 07/13] feat(discord): add report_err() for the Discord bot Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 08/13] feat(discord): Implement the report_err() Muhammad Rizki
2023-01-03  7:14   ` Ammar Faizi
2023-01-03  7:17     ` Ammar Faizi
2023-01-03 12:20     ` Muhammad Rizki
2023-01-03 22:20       ` Ammar Faizi
2023-01-04  8:21         ` Muhammad Rizki
2023-01-04  8:30           ` Ammar Faizi
2023-01-04  8:37             ` Ammar Faizi
2023-01-04  8:51               ` Ammar Faizi
2023-01-07  6:10         ` Muhammad Rizki
2023-01-07  6:18           ` Ammar Faizi
2023-01-07  6:22             ` Alviro Iskandar Setiawan
2023-01-07  6:26               ` Ammar Faizi
2023-01-07  7:02               ` Muhammad Rizki
2023-01-07  7:03                 ` Ammar Faizi
2023-01-03  6:36 ` [PATCH v1 09/13] feat(discord/database): Add ping() method Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 10/13] feat(discord): Add handle_db_error in the listener.py Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 11/13] feat(discord): Handle MySQL connection error in the mail listener Muhammad Rizki
2023-01-03  7:19   ` Ammar Faizi
2023-01-03  6:36 ` [PATCH v1 12/13] feat(discord): Implement the DaemonException for handle error Muhammad Rizki
2023-01-03  6:36 ` [PATCH v1 13/13] refactor(telegram)!: Rename the Telegram bot custom client Muhammad Rizki
2023-01-03  7:25 ` [PATCH v1 00/13] Improvements, refactors, and features Ammar Faizi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    [email protected] \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox