一个示例是使用代理进行请求的类,但是此代理在静态变量中设置为它。
队列中将发生什么?例如,排队的任务有100个,它们并行执行。
每个任务都会为自己设置一个代理并发出请求,当它在另一个任务中发生时,是否不会为每个实例“覆盖”代理属性?
class Request {
private static $proxy;
public static setProxy($proxy) {
self::$proxy = $proxy;
}
public static doRequest($url, $params) {
// send a request using a proxy
}
}
// task#1 in queue
class Task {
public function run() {
Request::setProxy('someProxyUrl1');
Request::doRequest(...);
}
}
// task#2 in queue
class Task {
public function run() {
Request::setProxy('someProxyUrl2');
Request::doRequest(...); // it will someProxyUrl1 or someProxyUrl2?
}
}
// task#3 in queue
class Task {
public function run() {
Request::setProxy('someProxyUrl3');
Request::doRequest(...); // request using someProxyUrl3 or someProxyUrl1 / someProxyUrl2?
}
}
// ...
// queue 100