首頁 PHP 函式庫 其它類別庫 Beanstalkd的PHP庫
Beanstalkd的PHP客戶端程式庫

Beanstalk,一個高效能、輕量級的分散式記憶體佇列系統,最初設計的目的是想透過後台非同步執行耗時的任務來降低高容量Web應​​用系統的頁面存取延遲,支援過有9.5 million用戶的Facebook Causes應用。

後來開源,現在有PostRank大規模部署和使用,每天處理百萬級任務。 Beanstalkd是典型的類Memcached設計,協議和使用方式都是同樣的風格,所以使用過memcached的用戶會覺得Beanstalkd似曾相識。

高性能離不開非同步,非同步也離不開佇列,而其內部都是Producer-Comsumer模式的原理。

Beanstalkd的PHP客戶端程式庫

#!/usr/bin/env php
<?php
define('BASE_DIR', realpath(__DIR__.'/..'));
define('PHAR_FILENAME', 'pheanstalk.phar');
define('PHAR_FULLPATH', BASE_DIR.'/'.PHAR_FILENAME);
// ----------------------------------------
reexecute_if_phar_readonly($argv);
delete_existing_pheanstalk_phar();
build_pheanstalk_phar();
verify_pheanstalk_phar();
exit(0);
// ----------------------------------------
// See: http://www.php.net/manual/en/phar.configuration.php#ini.phar.readonly
function reexecute_if_phar_readonly($argv)
{
    if (ini_get('phar.readonly') && !in_array('--ignore-readonly', $argv)) {
        $command = sprintf(
            'php -d phar.readonly=0 %s --ignore-readonly',
            implode($argv, ' ')
        );
        echo "Phar configured readonly in php.ini; attempting to re-execute:\n";
        echo "$command\n";
        passthru($command, $exitStatus);
        exit($exitStatus);
    }
}
function delete_existing_pheanstalk_phar()
{
    if (file_exists(PHAR_FULLPATH)) {
        printf("- Deleting existing %s\n", PHAR_FILENAME);
        unlink(PHAR_FULLPATH);
    }
}
function build_pheanstalk_phar()
{
    printf("- Building %s from %s\n", PHAR_FILENAME, BASE_DIR);
    $phar = new Phar(PHAR_FULLPATH);
    $phar->buildFromDirectory(BASE_DIR);
    $phar->setStub(
        $phar->createDefaultStub('vendor/autoload.php')
    );
}
function verify_pheanstalk_phar()
{
    $phar = new Phar(PHAR_FULLPATH);
    printf("- %s built with %d files.\n", PHAR_FILENAME, $phar->count());
}


#
免責聲明

本站所有資源皆由網友貢獻或各大下載網站轉載。請自行檢查軟體的完整性!本站所有資源僅供學習參考。請不要將它們用於商業目的。否則,一切後果都由您負責!如有侵權,請聯絡我們刪除。聯絡方式:admin@php.cn

相關文章

如何最好地存取 C# 類別庫中的配置設定? 如何最好地存取 C# 類別庫中的配置設定?

19 Jan 2025

從類別庫中的設定檔讀取設定開發 C# 類別庫時,從設定檔中擷取設置,例如...

php pdo資料庫操作封裝類別程式碼 php pdo資料庫操作封裝類別程式碼

25 Jul 2016

php pdo資料庫操作封裝類別程式碼

PHP QR Code 條碼與二維碼產生類別庫 PHP QR Code 條碼與二維碼產生類別庫

25 Jul 2016

PHP QR Code 條碼與二維碼產生類別庫

如何使用單例模式有效管理 PHP 類別中的資料庫連線? 如何使用單例模式有效管理 PHP 類別中的資料庫連線?

03 Nov 2024

在 PHP 類別中使用 PDO 在您的程式碼中,您嘗試擴展 PDO 類別並在 Foo 類別中實例化它。然而,這...

如何解決外部庫中的類別名稱衝突? 如何解決外部庫中的類別名稱衝突?

08 Jan 2025

解決外部庫中的類別名稱衝突在使用外部程式庫時,開發人員可能會遇到由於類別名稱衝突...

如何在類別中使用單例模式的 PDO 來實現高效率的資料庫操作? 如何在類別中使用單例模式的 PDO 來實現高效率的資料庫操作?

02 Nov 2024

將 PDO 合併到資料庫操作類別中在您的程式碼庫中,您有多個類別負責執行 MySQL 查詢和...

See all articles