-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[BeanstalkMessenger] Round delay to an integer to avoid deprecation warning #59160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Hey! I see that this is your first PR. That is great! Welcome! Symfony has a contribution guide which I suggest you to read. In short:
Review the GitHub status checks of your pull request and try to solve the reported issues. If some tests are failing, try to see if they are failing because of this change. When two Symfony core team members approve this change, it will be merged and you will become an official Symfony contributor! I am going to sit back now and wait for the reviews. Cheers! Carsonbot |
@@ -123,7 +123,7 @@ public function send(string $body, array $headers, int $delay = 0): string | |||
$job = $this->client->useTube($this->tube)->put( | |||
$message, | |||
PheanstalkInterface::DEFAULT_PRIORITY, | |||
$delay / 1000, | |||
(int) round($delay / 1000), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why use round()
?
(int) round($delay / 1000), | |
(int) ($delay / 1000), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fabpot Using (int) round($delay / 1000)
ensures that the delay value is properly rounded to the nearest integer before being passed to Pheanstalk::put(). While suggested truncation may work, I'd rather use rounding to be more accurate when converting from milliseconds to seconds.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fabpot oh, I see it now. Adding round()
will change current behaviour. Implicit conversion converts float 0.9 to a zero int.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ea6bb12
to
99aae50
Compare
Thank you @plantas. |
https://github.com/pheanstalk/pheanstalk/blob/1459f2f62dddfe28902e0584708417dddd79bd70/src/Pheanstalk.php#L223-L228
The
Pheanstalk::put()
method expects the$delay
parameter to be an integer. However, during the conversion from milliseconds to seconds, it is passed as a float. This triggers a deprecation warning: 'Deprecated: Implicit conversion from float to int loses precision.'