A IA pode lutar contra o aumento do número de ataques de ransomware
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
Beanstalk é uma fila de trabalho rápida e simples. Permite executar tarefas demoradas de forma assíncrona, como enviar e-mails, conectar-se a APIs externas ou processar imagens. Ao fazer isso, você reduzirá a latência do aplicativo da web. O Laravel fornece suporte pronto para uso beanstalkd
.
Neste tutorial, instalaremos beanstalkd
, configuraremos um aplicativo demo do Laravel e gerenciaremos os trabalhadores da fila por meio do Supervisor . O aplicativo de demonstração obterá uma lista de sistemas operacionais disponíveis na API Vultr e escolherá aleatoriamente um.
Supõe-se que você já tenha o Supervisor instalado no seu sistema. Caso contrário, leia o seguinte tutorial sobre como instalar o Supervisor: Instalando e configurando o Supervisor no Ubuntu 16.04
Também se supõe que você tenha acesso SSH à sua instância do Vultr.
O primeiro passo a tomar é instalar beanstalkd
.
sudo apt-get update
sudo apt-get install beanstalkd
Inicie o serviço.
sudo systemctl start beanstalkd
Você também pode ativar o serviço para iniciar na inicialização do sistema.
sudo systemctl enable beanstalkd
Verifique o status do serviço emitindo o seguinte comando.
sudo systemctl status beanstalkd
Por padrão, beanstalkd
escuta na porta 11300
. O Beanstalk usa um protocolo simples baseado em texto descrito em seu repositório github . Você pode testar seu protocolo executando telnet
.
telnet localhost 11300
Escreva o seguinte e pressione ENTER.
list-tubes
Você deve ver uma lista de tubos disponíveis no servidor:
OK 14
---
- default
Para fechar a conexão, basta digitar quit
e pressionar ENTER.
Os tubos no Beanstalk representam filas de trabalho. Beanstalk é composto basicamente por produtores , consumidores , empregos e tubos . Os produtores colocam os trabalhos em um tubo para serem consumidos (processados) por qualquer número de consumidores. Observe que produtores e consumidores são simplesmente clientes do servidor Beanstalk e são totalmente independentes um do outro. Em termos práticos, isso significa que, usando o Beanstalk, você pode produzir seus trabalhos em seu aplicativo PHP e processá-los em um aplicativo NodeJS, por exemplo. Felizmente, o Laravel abstrai tudo isso e nos fornece uma API muito simples para despachar e manipular tarefas, como veremos a seguir.
Para criar nosso projeto de amostra, primeiro precisamos instalar suas dependências. Vamos instalar o PHP e o Composer.
sudo apt-get install php php-mbstring php-xml php-common php-zip composer
Agora, crie o projeto baseado no Laravel 5.5.
composer create-project --prefer-dist laravel/laravel vultr "5.5.*"
Avançar cd
para a pasta criada recentemente. Nós estaremos trabalhando neste diretório a partir de agora. Esta pasta pode ser referenciada posteriormente como PROJECT_ROOT
.
cd vultr/
Para usar o Beanstalk no Laravel, precisamos instalar mais uma dependência, o cliente PHP Beanstalk.
composer require pda/pheanstalk ~3.0
Também precisamos criar uma representação de trabalho. No Laravel, essa é uma classe dentro da app/Jobs
pasta. O Laravel possui um comando de console para nos ajudar a criar uma classe Job. Vamos criar nosso trabalho de amostra.
php artisan make:job FindFavoriteOS
Atualize o app/Jobs/FindFavoriteOS.php
arquivo para o seguinte.
<?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']);
}
}
O método handle é o que será efetivamente executado quando o trabalho for consumido. Aqui, buscamos dados da API do Vultr, escolhemos aleatoriamente um sistema operacional e gravamos o sistema operacional escolhido no arquivo de log. O arquivo de log está localizado em storage/logs/laravel.log
.
Já instalamos o Beanstalk e definimos o trabalho a ser executado por ele. Agora é hora de dizer ao Laravel para usar o Beanstalk como a fila de trabalho padrão. Copie o .env
arquivo padrão fornecido pela instalação do Laravel.
cp .env.example .env
Agora abra o .env
arquivo e atualize a linha em que o driver da fila está especificado.
QUEUE_DRIVER=beanstalkd
Por fim, gere uma chave do aplicativo.
php artisan key:generate
Agora estamos prontos para enviar tarefas para a fila de trabalho do Beanstalk.
Despachar um emprego no Laravel é bastante simples. Atualize o routes/web.php
arquivo.
<?php
Route::get('/', function () {
for ($i = 0; $i < 50; $i++) {
\App\Jobs\FindFavoriteOS::dispatch();
}
return '50 Jobs dispatched!';
});
Apesar de não ser recomendado para executar o servidor interno fornecido em produção, o usaremos aqui por uma questão de brevidade.
php artisan serve --host 0.0.0.0 --port 8000
Agora, em um navegador da web, navegue até http://[vultr-instance-ip]:8000
. Você verá a seguinte mensagem.
50 Jobs dispatched!
Abra uma nova conexão SSH no seu servidor e, dentro da raiz do nosso projeto, execute o seguinte.
php artisan queue:work --once
Esta é a saída esperada:
[2018-02-14 00:03:52] Processing: App\Jobs\FindFavoriteOS
[2018-02-14 00:03:53] Processed: App\Jobs\FindFavoriteOS
Confirme se o log foi gerado.
cat storage/logs/laravel.log
Para evitar a necessidade de processar manualmente a fila, usaremos supervisord
. Crie a seguinte configuração de programa em /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
Observe que o caminho certo para colocar o arquivo de configuração do Supervisor dependerá da sua configuração. Além disso, lembre-se de substituir [PROJECT_ROOT]
o caminho completo para o PROJECT_ROOT
sistema.
Aqui estamos configurando o Supervisor para iniciar automaticamente o processamento da fila e, no caso de quebra do script, para reiniciá-la. Observe também que não estamos instanciando um único trabalhador, mas 8 processos. Você pode instanciar os processos que achar necessários, dependendo da sua aplicação.
Para permitir que o Supervisor gerencie nosso trabalhador, force-o a reler sua configuração.
sudo supervisorctl reread
sudo supervisorctl update
Se o serviço Supervisor não foi iniciado, você precisará iniciá-lo.
sudo systemctl start supervisord
Agora vamos ver se os trabalhos estão sendo processados.
tail -f storage/logs/laravel.log
Em um navegador da web, navegue para http://[vultr-instance-ip]:8000
. Você verá os logs sendo gerados no seu console.
Configuramos com sucesso um aplicativo Laravel para usar o Beanstalk como uma fila de trabalho. Além disso, demonstramos como usar o Supervisor para gerenciar trabalhadores.
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.