Nainstalujte Plesk na CentOS 7
Používáte jiný systém? Plesk je proprietární ovládací panel webového hostitele, který umožňuje uživatelům spravovat jejich osobní a/nebo klientské webové stránky, databáze
Beanstalk je rychlá a jednoduchá pracovní fronta. Umožňuje asynchronně spouštět časově náročné úlohy, jako je odesílání e-mailů, připojení k externím rozhraním API nebo zpracování obrázků. Tím snížíte latenci své webové aplikace. Laravel poskytuje přímou podporu pro beanstalkd
.
V tomto tutoriálu nainstalujeme beanstalkd
, nastavíme demo aplikaci Laravel a budeme spravovat pracovníky fronty prostřednictvím správce . Demo aplikace získá seznam dostupných OS z Vultr API a náhodně vybere jeden.
Předpokládá se, že v systému již máte nainstalovaného správce. Pokud tak neučiníte, měli byste si přečíst následující návod, jak nastavit správce: Instalace a konfigurace správce na Ubuntu 16.04
Předpokládá se také, že máte přístup SSH ke své instanci Vultr.
Prvním krokem je instalace beanstalkd
.
sudo apt-get update
sudo apt-get install beanstalkd
Spusťte službu.
sudo systemctl start beanstalkd
Můžete také povolit spuštění služby po inicializaci systému.
sudo systemctl enable beanstalkd
Zkontrolujte stav služby zadáním následujícího příkazu.
sudo systemctl status beanstalkd
Ve výchozím nastavení beanstalkd
naslouchá na portu 11300
. Beanstalk používá jednoduchý textový protokol popsaný ve svém github úložišti . Jeho protokol můžete otestovat spuštěním telnet
.
telnet localhost 11300
Napište následující a stiskněte ENTER.
list-tubes
Měli byste vidět seznam zkumavek dostupných na serveru:
OK 14
---
- default
Chcete-li připojení ukončit, jednoduše napište quit
a stiskněte ENTER.
Trubky v Beanstalk představují pracovní fronty. Beanstalk se skládá v podstatě z výrobců , spotřebitelů , pracovních míst a trubek . Výrobci vkládají zakázky do tuby, která má být spotřebována (zpracována) libovolným počtem spotřebitelů. Všimněte si, že jak výrobci, tak spotřebitelé jsou prostě klienty serveru Beanstalk a jsou na sobě zcela nezávislí. V praxi to znamená, že pomocí Beanstalk můžete vytvářet své zakázky ve své aplikaci PHP a nechat je zpracovávat například v aplikaci NodeJS. Naštěstí Laravel toto vše abstrahuje a poskytuje nám velmi jednoduché API pro odesílání a zpracování úloh, jak uvidíme dále.
Abychom mohli sestavit náš ukázkový projekt, musíme nejprve nainstalovat jeho závislosti. Chystáme se nainstalovat PHP a Composer.
sudo apt-get install php php-mbstring php-xml php-common php-zip composer
Nyní vytvořte projekt založený na Laravel 5.5.
composer create-project --prefer-dist laravel/laravel vultr "5.5.*"
Dále cd
do nedávno vytvořené složky. Od této chvíle budeme pracovat v tomto adresáři. Tato složka může být později označena jako PROJECT_ROOT
.
cd vultr/
Abychom mohli používat Beanstalk v Laravelu, musíme nainstalovat ještě jednu závislost, klienta PHP Beanstalk.
composer require pda/pheanstalk ~3.0
Musíme také vytvořit zastoupení Job. V Laravelu je to třída uvnitř app/Jobs
složky. Laravel má konzolový příkaz, který nám pomůže vytvořit třídu Job. Pojďme vytvořit naši ukázkovou práci.
php artisan make:job FindFavoriteOS
Aktualizujte app/Jobs/FindFavoriteOS.php
soubor na následující.
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Log;
class FindFavoriteOS implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$rawData = file_get_contents('https://api.vultr.com/v1/os/list');
$list = json_decode($rawData, true);
shuffle($list);
$key = array_rand($list);
$favorite = $list[$key];
Log::info('My Favorite OS is: ' . $favorite['name']);
}
}
Metoda handle je to, co bude efektivně provedeno, když je úloha spotřebována. Zde načteme data z Vultr API, náhodně vybereme OS a zapíšeme zvolený OS do souboru protokolu. Soubor protokolu se nachází na adrese storage/logs/laravel.log
.
Již jsme nainstalovali Beanstalk a definovali úlohu, kterou má provést. Nyní je čas říct Laravelu, aby použil Beanstalk jako výchozí pracovní frontu. Zkopírujte výchozí .env
soubor poskytnutý instalací Laravel.
cp .env.example .env
Nyní otevřete .env
soubor a aktualizujte řádek, kde je zadán ovladač fronty.
QUEUE_DRIVER=beanstalkd
Nakonec vygenerujte klíč aplikace.
php artisan key:generate
Nyní jsme připraveni odeslat úlohy do pracovní fronty Beanstalk.
Odeslání zakázky v Laravelu je docela jednoduché. Aktualizujte routes/web.php
soubor.
<?php
Route::get('/', function () {
for ($i = 0; $i < 50; $i++) {
\App\Jobs\FindFavoriteOS::dispatch();
}
return '50 Jobs dispatched!';
});
Navzdory tomu, že nedoporučujeme spouštět vestavěný poskytnutý server v produkci, zde jej kvůli stručnosti použijeme.
php artisan serve --host 0.0.0.0 --port 8000
Nyní ve webovém prohlížeči přejděte na http://[vultr-instance-ip]:8000
. Uvidíte následující zprávu.
50 Jobs dispatched!
Otevřete nové připojení SSH k vašemu serveru a v kořenovém adresáři našeho projektu proveďte následující.
php artisan queue:work --once
Toto je očekávaný výstup:
[2018-02-14 00:03:52] Processing: App\Jobs\FindFavoriteOS
[2018-02-14 00:03:53] Processed: App\Jobs\FindFavoriteOS
Potvrďte, že byl protokol vygenerován.
cat storage/logs/laravel.log
Abychom se vyhnuli nutnosti ručního zpracování fronty, použijeme supervisord
. Vytvořte následující konfiguraci programu v /etc/supervisor/conf.d/vultr.conf
.
[program:vultr]
process_name=%(program_name)s_%(process_num)02d
command=php [PROJECT_ROOT]/artisan queue:work
autostart=true
autorestart=true
numprocs=8
redirect_stderr=true
stdout_logfile=/var/log/worker.log
Všimněte si, že správná cesta k umístění konfiguračního souboru správce bude záviset na vašem nastavení. Nezapomeňte také nahradit [PROJECT_ROOT]
úplnou cestu k souboru PROJECT_ROOT
ve vašem systému.
Zde konfigurujeme správce, aby automaticky zahájil zpracování fronty a v případě přerušení skriptu ji restartoval. Všimněte si také, že nevytváříme instanci jednoho pracovníka, ale 8 procesů. Bez ohledu na to, kolik procesů považujete za nezbytné v závislosti na vaší aplikaci, můžete vytvářet instance.
Chcete-li nadřízenému umožnit správu našeho pracovníka, přinuťte jej, aby znovu načetl svou konfiguraci.
sudo supervisorctl reread
sudo supervisorctl update
Pokud služba Supervisor nebyla spuštěna, je nutné ji spustit.
sudo systemctl start supervisord
Nyní se podívejme, zda se úlohy zpracovávají.
tail -f storage/logs/laravel.log
Ve webovém prohlížeči přejděte na http://[vultr-instance-ip]:8000
. Uvidíte generování protokolů na vaší konzoli.
Úspěšně jsme nakonfigurovali aplikaci Laravel tak, aby používala Beanstalk jako pracovní frontu. Také jsme si ukázali, jak používat správce k řízení pracovníků.
Používáte jiný systém? Plesk je proprietární ovládací panel webového hostitele, který umožňuje uživatelům spravovat jejich osobní a/nebo klientské webové stránky, databáze
Úvod Lets Encrypt je služba certifikační autority, která nabízí bezplatné certifikáty TLS/SSL. Proces instalace zjednodušil Certbot,
Používáte jiný systém? Co je Tekkit Classic? Tekkit Classic je modpack pro hru, kterou každý zná a miluje; Minecraft. Obsahuje některé z ver
Používáte jiný systém? Jekyll je skvělá alternativa k WordPressu pro blogování nebo sdílení obsahu. Nevyžaduje žádné databáze a je velmi snadné i
Používáte jiný systém? Pokud si zakoupíte server Debian, měli byste mít vždy nejnovější bezpečnostní záplaty a aktualizace, ať už spíte nebo ne
PHP a související balíčky jsou nejčastěji používané komponenty při nasazování webového serveru. V tomto článku se naučíme, jak nastavit PHP 7.0 nebo PHP 7.1 o
Squid je populární bezplatný linuxový program, který vám umožňuje vytvořit webový proxy pro předávání. V této příručce uvidíte, jak nainstalovat Squid na CentOS, aby vás otočil
Úvod Lighttpd je fork Apache, jehož cílem je být mnohem méně náročný na zdroje. Je lehký, odtud jeho název, a jeho použití je docela jednoduché. Installin
Yii je PHP framework, který vám umožňuje vyvíjet aplikace rychleji a snadněji. Instalace Yii na Ubuntu je přímočará, jak se přesně dozvíte
Screen je aplikace, která umožňuje vícenásobné použití terminálových relací v rámci jednoho okna. To vám umožňuje simulovat více oken terminálu, kde to má
Tento tutoriál vysvětluje, jak nastavit DNS server pomocí Bind9 na Debianu nebo Ubuntu. V celém článku nahraďte odpovídajícím způsobem název-vaše-domény.com. Při čt
VULTR nedávno provedl změny na jejich konci a vše by nyní mělo fungovat dobře po vybalení s povoleným NetworkManagerem. Pokud si přejete deaktivovat
Icinga2 je výkonný monitorovací systém a při použití v modelu master-client může nahradit potřebu monitorovacích kontrol založených na NRPE. Hlavní klient
Používáte jiný systém? Red5 je open source mediální server implementovaný v Javě, který vám umožňuje spouštět aplikace Flash pro více uživatelů, jako je živé streamování
V tomto článku uvidíme, jak zkompilovat a nainstalovat hlavní řadu Nginx z oficiálních zdrojů Nginx pomocí modulu PageSpeed, který vám umožňuje
Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou
Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou
Používáte jiný systém? Vanilla forum je open source aplikace fóra napsaná v PHP. Je plně přizpůsobitelný, snadno použitelný a podporuje externí
Používáte jiný systém? Úvod Kanboard je bezplatný a otevřený softwarový program pro správu projektů, který je navržen tak, aby usnadnil a vizualizoval
Používáte jiný systém? Úvod Kanboard je bezplatný a otevřený softwarový program pro správu projektů, který je navržen tak, aby usnadnil a vizualizoval
Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.
Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.
Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.
Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.
Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…
Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.
Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.
Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.
V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.
Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více