Drupal érdekesség - locking system

  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • GeSHi library error: sites/all/modules/geshifilter/geshi is not a directory.
  • The spam filter installed on this site is currently unavailable. Per site policy, we are unable to accept new submissions until that problem is resolved. Please try resubmitting the form in a couple of minutes.
Kategória: 
Leírás

Vannak a Drupalnak amolyan rejtett dolgai, az ember ritkán találkozik velük, sőt, esetleg nem is tudjuk, hogy létezik. Na egy ilyet szedek elő, bevallom, én is ma találkoztam vele először. Ez pedig a locking system, magyarul talán zárolási rendszer a randa szó rá, de becézhetjük szemafornak is.

De mit is csinál ez? Vannak a drupalban olyan folyamatok, amikből nem árt, hogyha nem indul el ugyanazon paraméterekkel kettő. Tipikusan ilyen drupal folyamat a cron, illetve a batch.

Biztosan találkoztál már olyannal a naplóban, hogy "Attempting to re-run cron while it is already running.", magyarul ilyesmi, hogy a "Cron futása nem lehetséges, mert már fut".

Ilyenkor az történik, hogy a hogy amikor elindul egy cron folyamat, egy zárolási rekord keletkezik a semaphore táblában. Ez a lock_acquire($name) függvány hívására történik. Amikor cron futás közben újabb cron indul, történik egy ellenőrzés, hogy a 'cron' nevű zárolás létezik-e már, és ha igen, akkor nem indul el az újabb cron, illetve akkor keletkezik a naplóban az emlegetett bejegyzés.

A lock státuszát mi is lekérdezhetjük: lock_may_be_available('cron').

Amikor az első cron véget ért, akkor történik a zárolás feloldása a lock_release('cron') függvény hívásával.

Mire jó ez még a gyakorlatban?
Nem néztem meg, de például a views is igen valószínű, hogy ez alapján zárolja a nézetek szerkesztési felületét. Ilyenkor van az, hogy "A nézet nem szerkeszthető, mert egy másik felhasználó zárolta", vagy valami ilyesmi..

Van egy éppen aktuális téma a drupal.hu-n, a kolléga egy másik adatbázist írna drupal felületen keresztül. Nos, én bizony preventív nem biztos, hogy szívesen hagynám, hogy egyszerre többen ugyanazt a rekordot szerkesszék. Tehát a szerkesztő form generálása során csinálnék egy lock_acquire("mylock_$recordid"); -t, a form beküldése után pedig lock_release("mylock_$recordid").

És aminek a kapcsán én találkoztam ma a locking system-el, az a boost modul. Észrevettem, hogy ha kell, ha nem, törlődnek a boost által létrehozott oldalak minden cron futáskor. Ennek az oka pedig a locking system "nem ismerete" volt. A modul fejlesztője egy egészen más vonalon oldotta meg a dolgot, ami sok esetben nem működik.
Az eset másik tanulsága: Hogy sokféleképpen meg lehet oldani egy feladatot, de ha azt nem "drupalosan" teszed, akkor bizony érhetnek meglepetések.

Hozzászólások

Passion the website-- very

Passion the website-- very user friendly and lots to see! sites:ggglese.com
fotbollströjor http://cfbarbertown.phpfox.us/index.php/blog/7239/burtonc-bayern-munich-...

Sustain the excellent job and

Sustain the excellent job and generating the group!

With thanks for sharing your

With thanks for sharing your amazing web page.

Highly useful, look forward

Highly useful, look forward to coming back again.

Amazing web-site you've

Amazing web-site you've gotten here.

Surprisingly individual

Surprisingly individual pleasant website. Tremendous details readily available on few clicks.

Thanks a ton! It a very good

Thanks a ton! It a very good internet site!

I delight in the information

I delight in the information on your web site. Thnx.

Really had to tell you I am

Really had to tell you I am just thrilled I stumbled upon your website!|

Wow cuz this is great job!

Wow cuz this is great job! Congrats and keep it up.

thank so much for your

thank so much for your website it helps a great deal.

Highly informative looking

Highly informative looking ahead to coming back.

Great internet site! It looks

Great internet site! It looks really good! Keep up the helpful job!

Amazing such a helpful online

Amazing such a helpful online site.

Great internet website! It

Great internet website! It looks very expert! Sustain the great job!

uem9z5b fotbollströjor barn

uem9z5b fotbollströjor barn 5fet7wn cqodiws3 maglie calcio a poco prezzo uak57g4t 5kgsxjmufp fotballdrakter barn vredf3581 ucjy9583 billige fodboldtrøjer n231f64xmb

You have got impressive

You have got impressive information here.

Many thanks really practical.

Many thanks really practical. Will certainly share site with my good friends.

fujiapuerbbs.

Passion the website--

Passion the website-- extremely individual pleasant and great deals to see!

You have got good information

You have got good information here.

I benefit from looking

I benefit from looking through your website. Thanks a ton!

blikline. flyinghonda.

deryun. amoremjewelry.

ghabolshi.

oneofakind327. umsolution.

The advice is quite helpful.

The advice is quite helpful.

Maintain the remarkable work

Maintain the remarkable work !! Lovin' it!

pyosewook. mercury.

florapos. s2slc. libresite.

houseyorgrim. raviraj.

gemlikemlak. cdte44.

redingrpg. jabulaniholdings.

langroud118. clevio.

dnineinternational.

Basically needed to say Now

Basically needed to say Now i'm delighted I came on the website page.|

Great website! It looks

Great website! It looks really expert! Keep up the great work!

maplelost. blikline.

steerhome. bluebell.

That capability and kindness

That capability and kindness in controlling almost everything was excellent. I’m not sure what I would have done if I had not encountered such a stuff like this.Naturally I’ll offer you a website link on your web blog. Thanks for sharing. http://khelomcx.com/free-trial-commodity-tips

The stuff is extremely

The stuff is extremely interesting.

Amazing Web site, Stick to

Amazing Web site, Stick to the very good work. With thanks!|

khda.kr. exodium.

stayhere. langroud118.

xn---1-6kcatagi3d.

Hey, I think your blog might

Hey, I think your blog might be having browser compatibility issues.
When I look at your blog in Opera, it looks fine but when opening in Internet Explorer, it has some overlapping.
I just wanted to give you a quick heads up!
Other then that, wonderful blog!

Here is my blog - pharmacy technician ce free

Simply just wished to mention

Simply just wished to mention Now i am ecstatic that i came in your website page!|

tamurasinopsis. maplelost.

berkaybozkurt. insidefilms.

dnineinternational.

Hozzászólás

A mező tartalma nem nyilvános.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.
  • Engedélyezett HTML elemek: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <del> <img>
  • A webcímek és email címek automatikusan linkekké alakulnak.
  • A sorokat és bekezdéseket a rendszer automatikusan felismeri.
  • Engedélyezett HTML elemek: <a> <blockquote> <br> <cite> <code> <dd> <del> <div> <dl> <dt> <em> <li> <ol> <p> <span> <strong> <ul>
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <bash>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <mysql>, <php>, <python>, <ruby>, <sql>. The supported tag styles are: <foo>, [foo].
  • Minden email cím át lesz alakítva ember által olvasható módon, vagy (ha a JavaScript engedélyezett) ki lesz cserélve kattintható, de biztonságos hivatkozásra.