小编elw*_*ood的帖子

PHP操作码缓存锁定Apache.也许Symfony2 - Doctrine2相关

我开发了大约10个不同的网站,托管在一台服务器上,下面提到了规范.

故事:

一切都运行良好,直到我决定将PHP操作码缓存集成到系统中.我首先尝试使用APC,但是Xcache出现了同样的问题,所以我认为它与缓存程序本身无关.

系统保持稳定一段时间,从一天到一周不等,并在不同时间崩溃,但主要在晚上23h-05h左右.如果我重新启动httpd服务,系统在同一时间段(1天到1周)内再次稳定,并再次崩溃等...

错误报告:

这是上次崩溃期间我的httpd全局日志的报告:

[Thu Feb 18 20:00:11.270997 2016] [core:notice] [pid 24956:tid 139940499228480] AH00052: child pid 4522 exit signal Aborted (6)
httpd: hostip.c:693: Curl_resolv_unlock: Assertion `dns && (dns->inuse>0)' failed.
[Thu Feb 18 20:08:38.793218 2016] [core:notice] [pid 24956:tid 139940499228480] AH00052: child pid 6246 exit signal Aborted (6)
httpd: hostip.c:693: Curl_resolv_unlock: Assertion `dns && (dns->inuse>0)' failed.
[Thu Feb 18 22:12:33.576308 2016] [core:notice] [pid 24956:tid 139940499228480] AH00052: child pid 8362 exit signal Aborted (6)
httpd: hostip.c:693: Curl_resolv_unlock: Assertion `dns …
Run Code Online (Sandbox Code Playgroud)

php apache caching symfony doctrine-orm

13
推荐指数
2
解决办法
416
查看次数

在Symfony2中处理大型表单集合的最佳方法

编辑我的帖子类似于Symfony Cookbook并添加了一些代码.

http://symfony.com/doc/current/cookbook/form/form_collections.html

请注意,部件中发布的实体/表单代码与上面链接的文档中的实体/表单代码相同.

我有一个"任务"实体,它链接到"标签"实体.为了保持简单,"任务"有一个字段"描述","标签"有一个字段"名称".A"标签"链接到一个"任务","任务"链接到许多"标签".

实体:

class Task
{
    protected $description;
    protected $tags;

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

    public function getDescription()
    { return $this->description;}

    public function setDescription($description)
    { $this->description = $description; }

    public function getTags()
    { return $this->tags; }

    public function setTags(ArrayCollection $tags)
    { $this->tags = $tags; }
}

class Tag
{
    public $name;
}
Run Code Online (Sandbox Code Playgroud)

目前,我在"任务"表单中使用"标签"集合来一次编辑所有这些标签,如Symfony CookBook中所述:

形成:

class TagType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('name');
    }

    public function setDefaultOptions(OptionsResolverInterface $resolver) …
Run Code Online (Sandbox Code Playgroud)

forms symfony

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

来自 Varnish 的 Stale-while-revalidate 缓存替换

我们目前正在将我们的服务器迁移到一个新的服务器,其中 PLESK 12.5 不支持我们的 PHP 应用程序的 Varnish 缓存。

我们使用 Varnish,主要是为了 'stale-while-revalidate' 功能,这样我们就可以发送整个页面或部分(使用 ESI),而无需等待任何客户在缓存刷新时等待。

对于类似的缓存,有没有 Varnish 的替代品?可以在 PLESK 或任何 PHP/服务器缓存上运行的另一个“程序”?

PLESK 带有 NGINX,但它似乎没有提供 'stale-while-revalidate' 功能;我也知道 PLESK 不支持 Squid。

nginx plesk varnish http-caching

4
推荐指数
1
解决办法
2610
查看次数

基于项目可用性的多对数树的最佳数据库数据结构

我目前正在开发一个基于MySQL的网站,但如果有必要,转换到另一个数据库不是问题(如CTE左右).

我正在寻找最好的数据库数据结构(如果可能的话,还有一些SQL代码片段)来处理我当前的项目,如下所示:

  • 产品可以由其他产品(递归地)制成,因此产品必须在面向树的架构中设计.
  • 产品可用于制造许多产品.这就像嵌套集体系结构之类的东西不起作用,因为节点可以是子节点,也可以是许多节点的父节点,使用NestedSet似乎不可能.
  • 产品具有每天可用的数量,但仅限于它是"叶子"(它不是由其他产品制成).否则,其数量将取决于其直接子项的数量(依此类推,直到递归到达叶子).因此,产品可能链接到表"可用性",其中包含"product_id","date"和"quantity".

产品的"树"结构非常稳定,因此更新/插入/删除查询的速度并不重要.

最终目标是能够尽快在SELECT查询中检索指定的两个日期之间可用的所有产品的列表.

这意味着:

  • 1)如果产品不是由另一个产品制成,则如果两个日期之间的每天数量> 0,则可以使用该产品.
  • 2)如果产品是由其他产品制成的,只有当(1)对所有孩子都适用时才可以使用.如果直接的孩子不是"叶子",他们将没有数量,所以(2)的递归将发生,直到它到达最后的叶子.

顺便说一句,在实际情况下,我的产品永远不会有超过5级的深度.将所有父ID存储在单独的列中可能是一个很好(但非常难看)的想法.

tree database-design hierarchical-data

0
推荐指数
1
解决办法
1339
查看次数