2016/10/09

PHP session_write_close()


PHP函式 php session_write_close()
End the current session and store session data.
session 的資料需要在 script 結束時才會儲存,所以當有2 個 script 同時執行時,後面的 script 會等前面的 script 執行完成再來跑,如果設定了  session_write_close() 就可以立即告訴程式,我後面的程序不會寫入 session 了,其他程式可以讀取 session 的內容來處理。

好處就是:程序不會被前一個 session 卡住,但是寫入 session 的行為就要很小心的處理。


範例:
http://konrness.com/php5/how-to-prevent-blocking-php-requests/

說明: http://php.net/manual/en/function.session-write-close.php
Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.

ref:
http://xyz.cinc.biz/2012/01/php-session-lock.html 

2016/10/06

RabbitMQ 實作 AMQP 的開放原始碼訊息代理軟體


RabbitMQ 是一個訊息中介軟體 (broker) 可以接受並轉發訊息,他是 AMQP 的實作。
功能類似郵局機制,類似 unix Email system。
主要處理的存儲、轉發 binary blobs of data (二進制資料)

那 AMQP 它和傳統的 SMTP 差異在哪裡??  重點在可以非同步,並且可靠
ref: http://blogs.mulesoft.com/dev/news-dev/amqp-and-the-future-of-web-messaging/ 

系統中的角色:
訊息發布者 publisher = 訊息消費者 consumer
訊息代理 brokers
訊息生產者 producers

訊息交換模型 (ref: http://rabbitmq.mr-ping.com/AMQP/AMQP_0-9-1_Model_Explained.html )





使用 RabbitMQ 的顧客 https://blog.pivotal.io/channels/data-science-pivotal
Pivotal Labs 原來不只玩 big data 它是一間很有趣的公司呀!!(MADlib 是它開發中的產品..)

因為還不是很熟悉,所以放了很多參考連結:
官方網站 http://www.rabbitmq.com   in github https://github.com/rabbitmq
官方教學 http://www.rabbitmq.com/getstarted.html 
中文教學 http://rabbitmq.mr-ping.com/
WIKI 介紹 https://zh.wikipedia.org/wiki/RabbitMQ
PHP 函式 http://php.net/manual/fa/book.amqp.php 
PHP amqplib in GITHUB https://github.com/php-amqplib/php-amqplib 
Python 函式 https://barryp.org/software/py-amqplib/
使用經驗心得 http://pjack1981.blogspot.tw/2012/08/rabbitmq.html 
介紹 http://lab.howie.tw/2012/07/whats-different-between-amqp-and-jms.html 
AMQP future of web messageing  http://blogs.mulesoft.com/dev/news-dev/amqp-and-the-future-of-web-messaging/