Я нахожу, что делаю некоторые относительно продвинутые вещи с memcached в PHP. Становится умственной борьбой, чтобы думать и разрешать условия гонки и проблемы параллелизма, вызванные незащищенным характером кеша.
PHP кажется довольно слабым в средствах, когда дело доходит до параллелизма (потоки, кто-нибудь?), Поэтому я задаюсь вопросом, есть ли там какие-либо решения для правильной проверки / отладки.
Я не хочу ждать, пока два пользователя не попросят два сценария, которые одновременно будут выполняться как параллельные процессы, и вызовет проблему параллелизма, которая оставит меня почесывать мою голову, или что я, возможно, никогда не замету, пока она не начнет играть в кластерный флэш.
Любая волшебная палочка параллелизма PHP, о которой я должен знать?
PHP не является языком, предназначенным для многопоточности, и я не думаю, что он когда-либо будет.
Если вам нужна функция мьютекса, PHP имеет функции Семафора, которые вы можете скомпилировать.
Memcache не имеет возможности мьютекса, но его можно эмулировать с помощью метода Memcache :: add () .
Если вы используете базу данных MySQL и пытаетесь предотвратить какое-либо искажение состояния гонки, вы можете использовать оператор таблиц блокировок или использовать транзакции .
Вы можете опробовать свой код с помощью инструмента тестирования нагрузки, который может одновременно выполнять несколько запросов. Jmeter приходит на ум.
Не специально для этой проблемы, но: FirePHP ?