Comments (3)
From what I see, the Connection class does not have isClosed or similar helper function and send($command) also does not check if socket is even connected.
Our logging ignores the @ suppression to catch all hidden errors and warnings and this socket_write issue was revealed due to that
from net_gearman.
I think this will solve the problem. 288afc6
from net_gearman.
Sorry for late reply, that patch will trigger a lot more warnings actually...
public function connect($host, $timeout = 250)
You are now calling function connect without providing the host parameter which will not work at all, so now there are a few more errors...
Checking the codeflow, the connect originally was/is only called in constructor. This means constructor must record the host and timeout parameters in private properties that the connect function can then use and re-use. But that approach still has lots of issues.
Firstly the main issue still remains: if the connection has dropped, then there is no point in the Worker to write "reset_abilities" to a connection that is not open anymore. When you open a new connection, just to tell "reset_abilities" and then close it, it is unneeded open/close operation, because server side already should understand that connection dropped.
If the connection drops then the correct place to handle it is in the Worker because for new connection the abilities must also be resent... So reconnecting in the middle of Connection class without sending abilities list is incorrect...
from net_gearman.
Related Issues (19)
- Determine if no job servers were connected to HOT 15
- 012-client-runSet.phpt HOT 2
- Need to send WORK_EXCEPTION when an exception is thrown
- Package name HOT 1
- Regarding a Binary Argument and the Gearman MySQL Queue HOT 7
- Handling Job Retries Elegantly HOT 3
- hi Net_Gearman is already installed HOT 2
- Could not find package brianlmoon/net_gearman at any version for your minimum-stability HOT 1
- socket_set_block causing close latency HOT 22
- Any support for context? HOT 1
- Suddenly gearman workers start refusing jobs but works fine after restart. HOT 5
- Could you please confirm this work with php7? HOT 4
- No task by that handle HOT 3
- Returning data from a function HOT 1
- fix for package.xml
- PHP 8.1 Notices HOT 1
- Net_Gearman_Connection::close()
- not a problem HOT 1
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 net_gearman.