Разбивая большой скрипт на более мелкие партии - PullRequest
2 голосов
/ 06 февраля 2012

Я написал скрипт для магазина magento, его целью является заполнение файла .txt, который, в свою очередь, читается Google Merchant Center.

Сценарий работает правильно, однако хранилище magento размещается на ненадежном хосте, который допускает только 256 МБ на экземпляр PHP.Это нельзя изменить, поэтому единственное решение, которое я вижу, - это разбить скрипт, чтобы он обрабатывал только несколько продуктов за раз, работая как задание cron, каждые несколько минут.

Я изо всех сил пытаюсь придумать эффективный способ сделать это все же.Я могу ограничить количество выбранных продуктов, но в следующий раз при запуске скрипта он не будет знать, что было добавлено в .txt, а что нет.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 06 февраля 2012

Простое, но, возможно, немного грязное решение может состоять в том, чтобы добавить простой столбец «флажок» к таблице продуктов или иметь дополнительную таблицу с двумя столбцами, идентификатором продукта и временной меткой. Затем вы можете использовать временную метку для упорядочения и ограничения количества извлекаемых строк.

select productId, lastProcessed from productProcess order by lastProcessed asc limit 0,<whatever your limit>

Затем при обработке каждой строки вы можете обновить столбец lastProcessed с помощью NOW (). Если вы не хотите непрерывно обрабатывать продукты, вы можете использовать столбец с флажком, чтобы пометить время обработки, а затем в определенное время просто снять все «флажки».

Это увеличивает время обработки, но таким образом вы точно знаете, какие продукты вы уже обработали.

Это всего лишь пара вариантов, вы можете предложить другие решения, основанные на этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...