2016-04-13 30 views
0

Bir Gearman Worker içindeki CakePHP ORM paketini kullanıyorum. Paket: https://packagist.org/packages/cakephp/ormCakePHP ORM :: Veritabanını ayırma

$connectionObject = ConnectionManager::get('Backend'); 
$usersTable = TableRegistry::get('Users', ['connection' => $connectionObject]); 
$countActiveUsers = $usersTable->find()->where(['active' => 1])->count(); 

Bir iş bitiş işlenecek zaman veritabanı bağlantısını kesmek için bir yol bulmaya çalışıyorum şimdi, çünkü kuyrukta hiçbir iş, işçi ve arasındaki bağlantı olsa bile veritabanı açık kalır.

Şimdiden teşekkürler!

+1

, neden el bağlantıyı kapatmak zorunda açık kalan bağlantı sakıncası nedir nedir? Bağlantı yeniden kullanılabilir mi? – Rovanion

cevap

1

Bağlantı nesnesinde disconnect()'u kullanabilirsiniz.

$connectionObject->disconnect(); 

Bkz: http://api.cakephp.org/3.2/source-class-Cake.Database.Connection.html#190-198

+0

Bu belgede, ancak nesne örneğine nasıl erişileceğini fark ettim? – Ilan

+0

Kodunuzda '$ connectionObject' var. ConnectionManager bir Connection nesnesi döndürür. – jeremyharris

+0

Çalıştığınız gibi görünüyor ama yine de, çalışanım çalışırken PostgreSQL'i yeniden başlatırsam, 'SQLSTATE [HY000]: Genel hata: 7 sunucusuna bağlantı yok 7 ' Bu yüzden hala çalışanı yeniden başlatmam gerekiyor ve bundan kaçınmak istiyorum. – Ilan