WordPress元数据写/保存竞争条件?

时间:2016-05-24 20:02:01

标签: php mysql wordpress

我正在将A / B测试构建到WordPress PLugin中。

着陆页自定义帖子类型记录可以包含任意数量的页面A / B测试变体。每个变体都分配有字母A-Z。

使用内置的WordPress元数据功能,页面的所有变体都存储在数据库中的单个Meta数据键中。

以下是包含4个变体的1页元数据的示例。

为用户加载页面时,在查看此特定页面时,会为这4个变体中的一个提供服务。他们正在查看的变体的'ab-variation-views'键在每次加载时都会更新+1。

我现在在考虑它时有点担心。如果10个用户一次加载此页面,则10个随机获得下面4个变体中的1个。当它更新元数据时,为10个用户中的每个用户增加视图计数器。我想这里可能存在竞争条件/问题。

如果10个用户中有4个正在查看变体B并更新其视图计数+1,那么它们可能不会全部保存,甚至不会从另一个变体中查看视图。

我应该考虑将AB测试变体数据存储在自己的数据库表中吗?如果我这样做,每个页面变体可以有自己的记录,而不是共享相同记录和字段的页面的所有变体!

array (
  0 => 
  array (
    'ab-variation-letter' => 'B',
    'ab-variation-title' => 'bbbbbb',
    'ab-variation-wysiwyg-editor-' => 'bbbbbbbbbbbb',
    'ab-variation-conversion-count' => '',
    'ab-variation-views' => '',
    'ab-variation-start-date' => '',
    'ab-variation-end-date' => '',
    'ab-variation-winner' => '',
  ),
  1 => 
  array (
    'ab-variation-letter' => 'C',
    'ab-variation-title' => 'ccccc',
    'ab-variation-wysiwyg-editor-' => 'ccccccccccccccccc',
    'ab-variation-conversion-count' => '',
    'ab-variation-views' => '',
    'ab-variation-start-date' => '',
    'ab-variation-end-date' => '',
    'ab-variation-winner' => '',
  ),
  2 => 
  array (
    'ab-variation-letter' => 'D',
    'ab-variation-title' => 'dddddddd',
    'ab-variation-wysiwyg-editor-' => 'd',
    'ab-variation-conversion-count' => '',
    'ab-variation-views' => '',
    'ab-variation-start-date' => '',
    'ab-variation-end-date' => '',
    'ab-variation-winner' => '',
  ),
  3 => 
  array (
    'ab-variation-letter' => 'E',
    'ab-variation-title' => 'eeeeeeee',
    'ab-variation-wysiwyg-editor-' => 'eeeeeee eeeeeeeeeeeee eeeeeeee',
    'ab-variation-conversion-count' => '',
    'ab-variation-views' => '',
    'ab-variation-start-date' => '',
    'ab-variation-end-date' => '',
    'ab-variation-winner' => '',
  ),
)

0 个答案:

没有答案