drush scripting? nebo batch api?
<p>máme web ubercart, který denně zpracovává velké množství objednávek, zpracovává je a spouští další úkoly, jako je fakturace, směrování dodávek a vytváření budoucích objednávek.</p><p>některé z těchto úkolů jsou těžké a někdy způsobují vypršení časového limitu php). existuje lepší způsob, jak tyto úkoly spustit, například pomocí rozhraní drush nebo batch api?</p><p>rychlost není nutně prioritou (i když pěknou), ale chceme se vyhnout časovým limitům, které mohou někdy způsobit problémy se správným účtováním a naplánováním denních objednávek.</p><p>je skript drush lepší volbou nebo batch api? existují nějaké návody, jak lépe využít oba?</p>
<p>nenavrhoval bych používat dávkové api, jednoduše proto, že dávkové operace závisí na prohlížeči; pokud z nějakého důvodu dojde k selhání prohlížeče nebo ke ztrátě spojení se serverem, dávkové operace nebudou ukončeny, nebo (horší) budou viset. ve skutečnosti, aby se předešlo php timeouts), dávkové operace způsobí, že prohlížeč ping na dávkové stránce v intervalech; to je to, co se stane, kdykoli je zapojen kód javascript, nebo ne (v pozdějším případě, drupal používá metaznačku aktualizace).</p><p>v těchto případech je drush pravděpodobně lepší volbou; můžete vytvořit vlastní modul, který implementuje konkrétní příkazy drush, nebo jednoduše přidat soubor příkazů do adresáře, který drush používá pro své příkazy.</p>
Upřímně řečeno, já bych jít s sestavení .NET, jak se zdá být jednodušší řešení a těsněji obsahoval řešení, než zahájit nový proces. Některé z důvodů, proč jsem pocit, že způsob, jakým jsou tyto:


1. S nástrojem příkazového řádku, že jste na trh nový proces. Takže je to zcela samostatný proces ID běh a bude probíhat mimo rozsah a aplikační domény vaší stávající aplikace. Veškerá komunikace mezi aplikací a procesu bude přes hranice procesu a bude muset být provedeno buď s telefonem, jakési sdílené paměti, nebo nějaký jiný přístup, který by mohl být těžkopádný (zejména při řešení otázek).
2. Se zahájením nového procesu, jste v podstatě ztratí kontrolu nad tímto procesem z vaší aplikace. Pokud vaše aplikace zemře nebo se vypne, budete muset tento proces výslovně zabít - jinak budete muset úchyty zůstat otevřené soubory uzamčeny, atd.
3. Včetně sestavení .NET v aplikaci umožňuje vše spustit ve stejném kontextu (obecně), který umožňuje lepší komunikaci mezi složkami, snadnější ladění a odstraňování poruch (obecně), a jediný způsob je řízena.
4. Máte trochu větší kontrolu nad kódu. Zahájení procesu je v podstatě black-box - nemáte ponětí, co se děje uvnitř ní. Je pravda, že se sestavení .NET máte podobný black-box scénář, ale vzhledem k tomu, že je ve stejném procesu, může mít nějaké další vhled do toho, jak jsou hovory byly provedeny, kde jsou výjimky být hozen, atd. V podstatě mít trochu větší vhled do složky s sestavení .NET spíše než zahájit nový proces.


To jsou jen některé myšlenky z vrcholu mé hlavy. Doufám, že to pomůže. Máte-li dotazy, dejte mi vědět a já vám zpracovat mé odpovědi. Hodně štěstí!! <p>rozhraní api <a href="http://codex.wordpress.org/widgets\_api#developing\_widgets\_on\_2.8.2b">widgetů</a> je nejrychlejší způsob, jak vytvořit widget, který lze znovu použít. příklad použití:</p><pre><code>class my\_widget extends wp\_widget { /** * php4 constructor */ function my\_widget() { my\_widget::\_\_construct(); } /** * php5 constructor */ function \_\_construct() { // actual widget processes } /** * echo the settings update form * * @param array $instance current settings */ function form($instance) { // outputs the options form on admin } /** * update a particular instance * * @param array $new\_instance new settings for this instance as input by the user via form() * @param array $old\_instance old settings for this instance * @return array settings to save or bool (false) to cancel saving */ function update($new\_instance, $old\_instance) { // processes widget options to be saved } /** * echo the widget content * * @param array $args display arguments including before\_title, after\_title, before\_widget, and after\_widget * @param array $instance the settings for the particular instance of this widget */ function widget($args, $instance) { // outputs the content of the widget } } register\_widget('my\_widget'); </code></pre> pokud si seženeš kompletní data registru UIR ADR nebo RUIAN a narveš je třeba json-em do javascriptu tak ti stačí html+js...ale tímto směrem bych se asi nepouštěl Často toto je provedeno pomocí [„Data Driven odběry“](https://msdn.microsoft.com/en-us/library/ms169673.aspx) , ale tato funkce je k dispozici pouze v některých SQL vydáních: Enterprise a Business Intelligence, ale ne v normě.


Takže existuje celá řada kreativních řešení. Ale nemám rád žádné z nich, a všechny vyžadují spravedlivý trochu práce mimo SSRS.


Mezi řešení, které jsem viděl, patří: Vytvoření odběr a potom zakázání nebo povolení SQL úlohu, kterou odešle předplatné (identifikovatelné podle GUID).


Vytvořte si .NET obálky exe zvládnout odeslání e-mailu. Je možné spustit dotaz nejprve zjistit, kolik se vrací řádky, a pak v případě potřeby generovat zprávu a zahrnout do e-mailu. No, je tu vestavěný režim shell, který dělá zvýrazňování syntaxe, pokud to není již zapnutý, `M-x shell-script-mode`bude to pro vás.


Pokud jde o nástroj, aby skriptování jednodušší. Je tu [bash shell debugger](http://bashdb.sourceforge.net/) , takže pokud si program v bash, který by pomohl dost.


Samozřejmě je tu [eshell](http://www.emacswiki.org/emacs/CategoryEshell) , shell napsaný v Emacs Lisp, takže můžete získat všechny zvýraznění syntaxe byste očekávali od Lisp, automatické dokončování a Emacs LISP debugger. Takže jste se ptali, jak zvládnout práci na násobku „úkolů“ najednou, ne? S výjimkou větvení.


Můžete mít více checkouts ze zdroje na lokálním počítači, suffixing název adresáře s názvem lístku, na kterém pracujete. Jen se ujistěte, aby se změny ve správném adresáři, v závislosti na úkolu ...


Směšování více úkolů v jedné pracovní kopii / commit může být velmi matoucí, zvláště pokud někdo potřebuje, aby svou práci zkontrolovat později. V současné době jsou v kurzu SQL dartabáze. Takže pokud se chceš uplatnit, tak MS-SQL, Interbase, ORACLE, popř. nějaké ty internetové jako např. MySQL, PostgreeSQL apod. Každá databáze má vlastní programovací jazyk pro uložené procedury, vlastní datové typy apod.Program, ve kterém budeš vyvíjet soft je opět něco jiného. Ten většinou je univerzální a umí přistupovat k jakékoliv databázi.V současné době, pokud bych začínal, tak bych se orientoval směrem .NET a C#. <p>použijte <a href="http://manpages.ubuntu.com/manpages/trusty/en/man1/timedatectl.1.html"><code>timedatectl</code></a> </p><pre><code>sudo timedatectl set-timezone &lt;timeszone&gt; </code></pre><hr><p>příklady:</p><ul> <li> <p>časové pásmo jako est</p> <pre><code>sudo timedatectl set-timezone est </code></pre></li> <li> <p>časové pásmo jako utc</p> <pre><code>sudo timedatectl set-timezone utc </code></pre></li> <li> <p>výpis všech platných časových pásem</p> <pre><code>timedatectl list-timezones </code></pre></li> </ul><hr><p>tento příkaz je <strong> perfektní </strong> pro automatizační skripty, protože nevyžaduje žádnou <strong> interakci uživatele </strong> zatímco ve srovnání s jinou danou odpovědí založenou na <code>dpkg-reconfigure tzdata</code>.</p> Pokud jsou vaše stránky architektury obsažené v databázi (jako CMS) můžete udělat něco jako Darkyo navrhl. 


Nicméně existují jednodušší způsoby. Existuje mnoho bezplatných služeb, které procházet vaše stránky a vytvořit soubor Sitemap


<http://www.xml-sitemaps.com/> nebo <http://sitemapdoc.com/> jsou některé příklady, ale internet je jich plný. Jen google "Sitemap Creator".


Chcete-li vytvořit svůj vlastní skript je program s názvem „php sitemap ng“ při <http://enarion.net/google/phpsitemapng> . To může být opravdu dobrým výchozím místem. ORM může být váš nejlepší řešení.   

Nebo použít typ úložiště vzor, s „thingContext“ objekt, který je zodpovědný za státní vytrvalost.


Osobně používám Active Record, kde ušetřit logiku se peče do základní třídy, ale já odjíždím to ve prospěch NHibernate stylu úložiště vzor. Příspěvek na DDD a testování věci bez db je velmi příjemné mít v rámcové typu situace, kdy je moje obchodní logiky nyní získává trakci na novém uživatelském rozhraní.