小编Jav*_* H.的帖子

Firebase数据库 - 为"动态"子项添加索引

我正在使用Firebase数据库来存储游戏的分数.一切正常,直到我决定实施"每周分数".

为了能够按分数过滤然后按周排序,我将数据存储在以下结构中:

game_scores-weekly
    2018-01-29
        user_id: { score, date, bla, bla bla}
        user_id: { score, date, bla, bla bla}
        user_id: { score, date, bla, bla bla}

    2018-02-05
        user_id: { score, date, bla, bla bla}
        user_id: { score, date, bla, bla bla}
Run Code Online (Sandbox Code Playgroud)

所以,这个工作得很好,但是由于没有索引"game_scores-weekly/new_week"indexOn"得分",我每个新周都会因为性能问题而得到令人讨厌的警告.手动添加索引有效...直到下周,所以不是一个选项.

    "game_scores-weekly": {
      "2018-02-19": {
        ".indexOn": ["score", "uid"]
      },
      "2018-02-12": {
        ".indexOn": ["score", "uid"]
      }
    } 
Run Code Online (Sandbox Code Playgroud)

有没有办法在日期中以某种方式指定通配符,所以它适用于任何新的日期?或者我可以每周以编程方式创建新索引,还是有任何其他我可能没想过的解决方案?

另外,考虑手动创建一年中所有星期的列表并一次性添加它,但可能是一个限制?

最后,但并非最不重要的是,我只对目前的一周和上周的分数感兴趣,任何年龄较大的我都希望保留它以获得一些历史数据,但我不会在游戏中查询,所以可能会摆脱旧周的指数.

干杯!

firebase firebase-realtime-database

9
推荐指数
1
解决办法
591
查看次数

"Doctrine Query"构建器,计数相关的一对多行

<?php
namespace Raltech\WarehouseBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * @ORM\Entity
 * @ORM\Table(name="warehouse_magazine")
 */
class Magazine
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=100)
     */
    protected $name;


    /**
     * @ORM\Column(type="text")
     */
    protected $description;


    /**
     * @ORM\OneToMany(targetEntity="Wardrobe", mappedBy="magazine",cascade={"remove"})
    */
    protected $wardrobe;


    public function __construct()
    {
        $this->wardrobe = new ArrayCollection();
    }

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set name
     *
     * @param …
Run Code Online (Sandbox Code Playgroud)

php sql symfony doctrine-orm

7
推荐指数
1
解决办法
8897
查看次数

当我更改parent ="@ style/Theme.AppCompat.Light.DarkActionBar">时,popupMenuStyle不起作用

当我改变主题风格时

<style name="Theme.mystyle" parent="@style/Theme.AppCompat.Light">
Run Code Online (Sandbox Code Playgroud)

<style name="Theme.mystyle" parent="@style/Theme.AppCompat.Light.DarkActionBar">
Run Code Online (Sandbox Code Playgroud)

根本不工作.

<style name="PopupMenu.mystyle" parent="@style/Widget.AppCompat.Light.PopupMenu">
    <item name="android:textStyle">bold</item>
    <item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android themes android-actionbar

5
推荐指数
1
解决办法
3862
查看次数

使用Memcached进行会话时打开的文件过多

我正在使用ubuntu + nginx + php5-fpm + symfony2,最近我从文件切换到Memcached(php5-memcached)进行会话。从那以后,一段时间后,我开始收到500个响应代码错误。这是错误日志中的样子(打开流失败:打开太多):

"PHP message: PHP Warning:  simplexml_load_file(.../vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/doctrine/User.orm.xml): failed to open stream: Too many open files in .../vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php on line 736
PHP message: PHP Warning:  simplexml_load_file(): I/O warning : failed to load external entity &quot;.../vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/doctrine/User.orm.xml&quot; in .../vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php on line 736
PHP message: PHP Warning:  include(.../vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/MappingException.php): failed to open stream: Too many open files in .../vendor/composer/ClassLoader.php on line 382
Run Code Online (Sandbox Code Playgroud)

经过一些研究,我发现它似乎与Memcached在会话中的使用有关:

  1. 这些是正在运行的php5-fpm进程:

    ps aux | grep php

    根3233 0.0 0.2 207464 16164 Ss Mar16 0:02 php-fpm:主进程(/etc/php5/fpm/php-fpm.conf)www-data …

php memcached nginx symfony

5
推荐指数
1
解决办法
3525
查看次数

使用Symfony2处理主从(MySQL)复制延迟

我正在努力解决以下问题:我有两个MySQL服务器,配置为Master-Slave,但它们不在同一个内部网络上,因此有时会有明显的延迟,并且在写入后从slave读取,可能会导致不一致的问题.

我想知道是否有一种方法可以从从属设备中读取mysql,并且如果在从设备或其他解决方案上没有结果,则会以某种方式回退到从设备.

不确定是否可以完成,无论是应该在应用程序层还是在mysql级别.

当前的设置是带有mysqlnd扩展名的php5,并按照文档(在yaml上添加奴隶http://symfony.com/doc/current/reference/configuration/doctrine.html)我设法让应用程序从奴隶中读取并写在主人身上.

php mysql master-slave symfony

2
推荐指数
1
解决办法
899
查看次数