Skip to content

Using empty PHP without installing plugins (not pthread) ; Performing process on database rows _ thread in php

Notifications You must be signed in to change notification settings

iransoftnet1/MultiThreadDatabaseProcessing_laravel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

MultiThreadDatabaseProcessing_laravel

Using empty PHP without installing plugins (not pthread) ; Performing process on database rows

The package can only be used in Laravel - Tested on 5.8 The performance is not php artisan serv step 1 :

create folder (packages/iransoftnet1/multi-thread-database-processing) in root project

step 2:

Copy all contents of the package

step 3:

add namespace in composer.json in root project

"autoload": {
        "psr-4": {
            "App\\": "app/",
            "Iransoftnet1\\MultiThreadDatabaseProcessing\\":"packages/iransoftnet1/multi-thread-database-processing/src/"
        }

step 4: add provider in config/app.php ->

'providers' => [

 /*
         * Package Service Providers...
         */
        Iransoftnet1\MultiThreadDatabaseProcessing\MainServiceProvider::class,

step 5:

enter in consol ->

php artisan vendor:publish --provider=Iransoftnet1\MultiThreadDatabaseProcessing\MainServiceProvider --force

step 6:

In the app folder you will see the TaskTable folder _

An example to use Build everything you have in a class and inherit from the TaskTable class and override the task method

step 7:

Wherever you want to be, just create an object from the class and call the Run method


$n = new \App\TaskTable\Notify();

print_r($n->Run());

توضیحات فارسی :

گاهی اوقات شما نیاز دارید روی یکسری یا همه ی سطر های یک جدول پایگاه داده یک عملیات محاسباتی تحلیلی و... انجام دهید که سرعت خیلی برای شما مهم است این پکیجی که برای لاراول نوشتم به شما این امکان را می دهد که این کار را انجام دهید

همان طور که می دانید در پی اچ پی عملا مفهموم ترد وجود ندارد و برای استفاده از ترد باید افزونه ی
pthread را نصب کنید که خوب این کار روی هاست های رایگان یا اشتراکی امری نادر است .

شما نیاز دارید به چیزی که بدون افزونه این کار را برای شما انجام دهد دقت کنید این پکیج فقط برای انجام کار روی سطح های پایگاه داده است .

با فرض این که پکیج نصب کردید

در پوشه ی TaskTable ‌شما هر کاری که دارید یک کلاس می سازید و ارث می برید از کلاس

TaskTable

داخل پکیج بعد از این کار سه متد

را باید اووراید کنید خوب در اولی معلومه کاری که می خواهید روی دیتا انجام دهید را می گذارید که دیتا کالیکشنی از سطر های جدول مورد نظر شماست

function task(Collection $data,$skip): void  
{

}

تعداد سطر هایی که می خواهید توی هر ترد انجام شود

function setMaxRowInTread(): int  
{  
 return 2;  
}

در این جا با کوری بیلدر ها کویری که از جدول مورد نظر می خواهید میسازید و ریترن می کنید

function setQueryBuilder(): Builder  
{  
  
}

و در اخر هم هر جا نیاز داشتید که انجام عملایات شما شروع شود کافیه از روی این کلاس یک شی بسازید و متد ران ان را فراخوانی کنید مثال این جریان در بخش انگلیسی گفته شده

دقت کنید در

php artisan serv

کار نمی کنه بلکه باید روی زمپ یا ومپ یا هاست باشد

حتما بعد از نصب دستور زیر را در کنسول وارد کنید تا هم پوشه ی مورد نظر ساخته بشه در اپ هم نمونه مثالی از این کار را مشاهده کنید

php artisan vendor:publish --provider=Iransoftnet1\MultiThreadDatabaseProcessing\MainServiceProvider --force

About

Using empty PHP without installing plugins (not pthread) ; Performing process on database rows _ thread in php

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages