mirror of
https://github.com/kevachat/webapp.git
synced 2025-08-26 13:42:40 +00:00
add room list cache to prevent available kevaListNamespaces results on pending transactions
This commit is contained in:
parent
ee81ffec09
commit
d984f01d5d
2
.env
2
.env
@ -19,7 +19,7 @@ APP_ENV=dev
|
|||||||
APP_SECRET=EDIT_ME
|
APP_SECRET=EDIT_ME
|
||||||
###< symfony/framework-bundle ###
|
###< symfony/framework-bundle ###
|
||||||
|
|
||||||
APP_VERSION=1.4.0
|
APP_VERSION=1.4.1
|
||||||
|
|
||||||
APP_NAME=KevaChat
|
APP_NAME=KevaChat
|
||||||
|
|
||||||
|
@ -52,9 +52,25 @@ class RoomController extends AbstractController
|
|||||||
$this->getParameter('app.kevacoin.password')
|
$this->getParameter('app.kevacoin.password')
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Connect memcached
|
||||||
|
$memcached = new \Memcached();
|
||||||
|
$memcached->addServer(
|
||||||
|
$this->getParameter('app.memcached.host'),
|
||||||
|
$this->getParameter('app.memcached.port')
|
||||||
|
);
|
||||||
|
|
||||||
|
$memory = md5(
|
||||||
|
sprintf(
|
||||||
|
'%s.RoomController::list:rooms',
|
||||||
|
__DIR__
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
// Get room list
|
// Get room list
|
||||||
$list = [];
|
$list = [];
|
||||||
|
|
||||||
|
if (!$list = $memcached->get($memory))
|
||||||
|
{
|
||||||
foreach ((array) $client->kevaListNamespaces() as $value)
|
foreach ((array) $client->kevaListNamespaces() as $value)
|
||||||
{
|
{
|
||||||
// Calculate room totals
|
// Calculate room totals
|
||||||
@ -101,6 +117,14 @@ class RoomController extends AbstractController
|
|||||||
$list
|
$list
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Cache rooms to memcached as kevaListNamespaces hides rooms with pending posts
|
||||||
|
$memcached->set(
|
||||||
|
$memory,
|
||||||
|
$list,
|
||||||
|
(int) $this->getParameter('app.memcached.timeout')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// RSS
|
// RSS
|
||||||
if ('rss' === $request->get('feed'))
|
if ('rss' === $request->get('feed'))
|
||||||
{
|
{
|
||||||
@ -703,6 +727,16 @@ class RoomController extends AbstractController
|
|||||||
(int) $this->getParameter('app.add.room.remote.ip.delay') // auto remove on cache expire
|
(int) $this->getParameter('app.add.room.remote.ip.delay') // auto remove on cache expire
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Reset rooms list cache
|
||||||
|
$memcached->delete(
|
||||||
|
md5(
|
||||||
|
sprintf(
|
||||||
|
'%s.RoomController::list:rooms',
|
||||||
|
__DIR__
|
||||||
|
),
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
// Redirect to new room
|
// Redirect to new room
|
||||||
return $this->redirectToRoute(
|
return $this->redirectToRoute(
|
||||||
'room_namespace',
|
'room_namespace',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user