Перайсці да асноўнага змесціва
Версія: 1.x

Вырашэнне праблем

Пачніце з першай мяжы, дзе ўзнікае памылка: рэгістрацыя, запыт, канвертаванне, сховішча або дастаўка. Захоўвайце зыходнае выключэнне, бо яно змяшчае клас стужкі і кантэкст вываду.

Клас стужкі не знойдзены​

Праверце, што рэгістрацыя змяшчае поўнае імя класа, аўтазагрузка Composer можа яго атрымаць, а клас пашырае DragonCode\LaravelFeed\Feeds\Feed або перадусталёўку. Пасля перамяшчэння класа выканайце composer dump-autoload.

Генерацыя выкарыстоўвае зашмат памяці​

  • Вяртайце Builder Eloquent з builder().
  • Не выклікайце get(), all() або toArray() для ўсяго набору даных.
  • Паменшыце chunkSize() і паўтарыце вымярэнне.
  • Падзяляйце вялікі вывад праз perFile().
  • Пераносьце працу ў асінхронную чаргу толькі пасля захавання струменевай працы самой стужкі.

Глядзіце прадукцыйнасць.

Задача чаргі не запускаецца​

Праверце FEED_QUEUE_CONNECTION, FEED_QUEUE_NAME і каманду апрацоўшчыка. Падключэнне sync выконвае задачу адразу і не правярае асінхронную дастаўку. Блакіроўка ўнікальнасці можа не дапусціць другую задачу для той жа стужкі да заканчэння FEED_QUEUE_UNIQUE_TTL.

Дыск сховішча адхілены​

Дыск павінен вяртаць Illuminate\Filesystem\FilesystemAdapter і падтрымліваць патокі для запісу, перамяшчэнне, кіраванне каталогамі, спісы і выдаленне. Карыстальніцкая рэалізацыя, якая не з'яўляецца FilesystemAdapter, завяршаецца памылкай UnsupportedStorageDiskException да запыту ў базу даных. Дыск Laravel толькі для чытання праходзіць гэтую праверку тыпу. Запіс на яго завяршаецца памылкай падчас публікацыі пасля завяршэння запыту стужкі і лакальнай падрыхтоўкі, а GeneratorService абгортвае памылку сховішча ў FeedGenerationException.

Генерацыя XML завяршаецца памылкай​

Праверце неапрацаваны XML, перададзены праз @mixed, пераканайцеся ў правільнасці змесціва CDATA і захоўвайце значэнні дырэктыў у межах задакументаваных кантрактаў скалярных значэнняў і масіваў. Аддавайце перавагу звычайным экранаваным значэнням, калі неапрацаваны XML не патрэбны.

Радкі CSV памыляюцца пасля першага элемента​

CSV вызначае слупкі са схемы вываду. Кожны элемент павінен вяртаць аднолькавыя ключы. Неабавязковыя значэнні захоўваюць пусты слупок, а не выдаляюць яго.

Апублікаваныя файлы няпоўныя або састарэлыя​

Праверце зыходнае выключэнне сховішча і правы дыска. На аддаленых дысках улічвайце ўзгодненасць з затрымкай і неатамарныя перамяшчэнні праз капіяванне і выдаленне. Генератарам на розных вузлах патрэбна знешняя размеркаваная блакіроўка, калі яны могуць публікаваць адзін вынік.

Падчас публікацыі Laravel Feeds стварае побач з мэтавым шляхам часовы каталог .feeds_staging_*. Ён выдаляецца пасля паспяховай публікацыі і пасля звычайных памылак генерацыі. Калі адкат завяршаецца памылкай, каталог захоўваецца, каб у ім засталіся рэзервовыя копіі. Каталог таксама можа застацца пасля аварыйнага спынення працэсу або памылкі ачысткі.

Вялікая або пастаянна растучая колькасць каталогаў .feeds_staging_* паказвае на паўторныя памылкі публікацыі або ачысткі. Праверце журналы генерацыі і зыходнае выключэнне, выпраўце асноўную праблему са сховішчам, правамі доступу або працэсам і праглядзіце захаваныя рэзервовыя копіі перад ручным выдаленнем састарэлых каталогаў.

Глядзіце таксама​