Многопроцессорная обработка в Python 3: параллельная обработка и ожидание заданий

Я нашел человека, который выполняет это с очень умным использованием собственного Image объекта.

Из их источника это основная функция (она имеет зависимости от других частей источника, но вы получаете идею).

function Pinger_ping(ip, callback) {

  if(!this.inUse) {

    this.inUse = true;
    this.callback = callback
    this.ip = ip;

    var _that = this;

    this.img = new Image();

    this.img.onload = function() {_that.good();};
    this.img.onerror = function() {_that.good();};

    this.start = new Date().getTime();
    this.img.src = "http://" + ip;
    this.timer = setTimeout(function() { _that.bad();}, 1500);

  }
}

Это работает на всех типах серверов которые я тестировал (веб-серверы, ftp-серверы и игровые серверы). Он также работает с портами. Если кто-либо встречает случай использования, который терпит неудачу, напишите в комментариях, и я обновлю свой ответ.

Обновление: ссылка была удалена. Если кто-либо находит или реализует вышеизложенное, прокомментируйте, и я добавлю его в ответ.

Обновление 2: @trante было достаточно приятно, чтобы предоставить jsFiddle.

http://jsfiddle.net/GSSCD/203/

Обновление 3: @Jonathon создал репозиторий GitHub с реализацией.

https://github.com/jdfreder/pingjs

Обновление 4: похоже, что эта реализация более не является надежной. Люди также сообщают, что Chrome больше не поддерживает все это, выбросив ошибку net::ERR_NAME_NOT_RESOLVED. Если кто-то может проверить альтернативное решение, я поставлю это как принятый ответ.

0
задан BoredTech 25 February 2015 в 18:41
поделиться