Bài viết được gắn thẻ: ứng dụng

Đăng nhập với Twitter "bằng cách sử dụng Zend Framework

By , thứ năm lần thứ 17 March 2011 01:07 am

Mặc dù tất cả các ghét twitter vào lúc này, tôi đã thiết lập ra để tạo ra một mới twitter dựa trên ứng dụng. Là một người quản lý một số tài khoản (cá nhân và cho công việc từ thiện của tôi) Tôi đã cần một công cụ cho đôi khi đó tôi chỉ nhận được xung quanh để viết (nhiều hơn trong tương lai gần ...).

Tôi đã đọc trên Zend_Oauth_Consumer và làm thế nào nó có thể được sử dụng để có được ủy quyền để tương tác với twitter bằng cách sử dụng oauth . Tất cả tốt và tốt, tôi có chìa khóa truy cập của tôi và tôi vui vẻ có thể gửi đi thay mặt cho một người sử dụng. Có rất nhiều các nguồn lực hiện có để làm điều này vì vậy tôi sẽ không khoan người dân.

Bước tiếp theo là cho phép mọi người quay trở lại trang web, đăng nhập và chỉnh sửa tài khoản của họ. Đây là nơi tôi đến một vấn đề nhỏ. Sử dụng các ví dụ mã trên các trang web có nghĩa là tôi đã twitter yêu cầu tôi cho phép truy cập một lần nữa cho mỗi lần đăng nhập, không tốt. Quét thông qua các khuôn khổ tôi không thể nhìn thấy bất cứ điều gì mà sẽ cho phép tôi chỉ yêu cầu xác thực. Đó không phải là để nói không có, nhưng không có vẻ là một cơ chế xác thực có thể được gọi mà không cần biết mã thông báo truy cập đã.

Các lựa chọn thay thế để thực hiện một đăng nhập trang web hoặc bằng cách nào đó lưu trữ thẻ truy cập của người dùng trên máy khách (mã hóa của khóa học). Không những có vẻ như một giải pháp tốt / phù hợp.

Tiếp tục đọc "Đăng nhập bằng Twitter" bằng cách sử dụng Zend Framework '»

Naked Zend_Layout và Zend_View

, Thứ Ba 10 Tháng 8, 2010 23:47

Trong bài viết này, tôi nhìn vào cách sử dụng Zend_Layout và Zend_View cùng với một bộ điều khiển phía trước đơn giản để hiển thị như thế nào nó có thể bắt đầu tách logic kinh doanh và trình bày trong ứng dụng của bạn. Tất cả các mã có sẵn trên github:
Naked Zend_Layout và Zend_View trên GitHub .

Tiếp tục Zend_Layout Naked và Zend_View đọc »

PHP Thiết kế mẫu - Observer Pattern

, Thứ Ba ngày 29 Tháng 12 2009 22:02

Tôi đã đọc mẫu thiết kế trưởng đầu tiên gần đây và đã quyết định viết một số các mô hình như là ví dụ PHP cho lợi ích của riêng tôi. Người đầu tiên mà tôi đã quyết định đang là Observer Pattern . Định nghĩa chính thức của các mẫu Observer là:

Các mô hình quan sát (một tập hợp con của không đồng bộ xuất bản / đăng ký mô hình ) là một phần mềm thiết kế mô hình trong đó một đối tượng , được gọi là các đối tượng, duy trì một danh sách người phụ thuộc của nó, gọi là quan sát, và thông báo tự động của bất kỳ thay đổi trạng thái, thường là bằng cách gọi của phương pháp . Nó chủ yếu được sử dụng để thực hiện các hệ thống xử lý sự kiện phân phối.

Khi hệ thống trở nên lỏng hơn và đảm bảo rằng khi một sự kiện xảy ra tất cả các hệ thống đó có yêu cầu kiến ​​thức về các bản cập nhật được thông báo. Ví dụ, một bài đăng blog, sau khi tiết kiệm một bài viết chúng tôi có thể cần phải cập nhật một công cụ tìm kiếm (ví dụ như Lucene), cập nhật sơ đồ trang web, thẻ, người sử dụng email đăng ký, vv Các mô hình quan sát cho phép các nhà phát triển thêm các thính giả bổ sung mà không cần chỉnh sửa đối tượng quan sát của họ . Bằng cách tiêm các quan sát (tức là một công cụ tìm kiếm các bản cập nhật quan sát, một sitemap máy phát điện, vv) vào một chủ đề (tức là bài đăng trên blog chỉnh sửa hệ thống), chúng ta có thể cho phép nó thực hiện tất cả các bản cập nhật cần thiết mà không có bất kỳ thay đổi.

Tiếp tục các mẫu thiết kế PHP - Observer Pattern 'đọc »

Văn phòng lưới máy tính sử dụng môi trường ảo - Phần 3

, thứ Sáu ngày 04 tháng 12 năm 2009 23:37

Giới thiệu

Tôi làm việc trong một công ty mà chúng tôi chạy nhiều công việc hàng loạt chế biến hàng triệu bản ghi dữ liệu mỗi ngày và tôi đã suy nghĩ gần đây về tất cả các máy ngồi xung quanh mỗi ngày và không làm gì trong vài giờ. Nó sẽ không tốt nếu chúng ta có thể sử dụng những máy móc để tăng cường sức mạnh xử lý của hệ thống của chúng tôi? Trong tập hợp các bài viết này, tôi sẽ xem xét các lợi ích tiềm năng của việc sử dụng một văn phòng lưới điện bằng cách sử dụng môi trường ảo hóa.

Trong phần 2 chúng ta nhìn vào việc làm một máy chủ sẽ chạy, và làm thế nào công việc nên được cấu hình để đạt được số tiền lớn nhất của chế biến trong khi đảm bảo rằng mỗi công việc được xử lý mà không thất bại.

Nhân viên của bạn hoặc máy chủ khập khiễng

Bước tiếp theo trong quá trình là thiết lập các công nhân ảo của bạn. Đối với điều này, tôi sẽ sử dụng một cài đặt của CentOS bằng cách sử dụng VirtualBox. Tôi sẽ cài đặt mySQLPHP trên máy chủ, còn được gọi là (Li nux, m ySQL, P HP) Limp ServerA (tôi có thể đã thực hiện rằng tên lên).

  • Cài đặt VirtualBox trên máy tính các cửa sổ của bạn (theo liên kết)
  • Tải về và cài đặt CentOS (phiên bản hiện hành 5.3) bên trong một máy ảo được tạo ra

Không có điểm tôi sẽ có 1.000 's hướng dẫn tuyệt vời có (ok, đây là một: Tạo và máy ảo trong VirtualBox Managing CentOS ). Điểm quan trọng cần lưu ý tôi giả sử là tôi được gọi là máy ảo của tôi GridMachine.

Theo như sự lựa chọn của khách hàng ảo hóa và hệ điều hành đi không có lý do hấp dẫn lớn đối với mỗi sự lựa chọn. VirtualBox là một cái gì đó tôi sử dụng trên máy chủ của tôi và được hỗ trợ bởi ba hệ điều hành chính. Tôi đã chọn CentOS là một hệ điều hành ổn định của nó tốt và tôi sử dụng nó trên máy chủ web của riêng tôi. Tôi có niềm tin lớn trong các công cụ cho công việc (mặc dù tôi đang áp dụng sử dụng nhanh nhất và dễ nhất cho bạn tâm lý ở đây), vì vậy nếu hệ điều hành X chạy mã của bạn nhanh hơn và nhiều hơn nữa hiệu quả sử dụng mà thay vào đó :)

Điều quan trọng là đảm bảo rằng máy ảo của bạn sử dụng DHCP, nếu không cho mỗi máy ảo mới sẽ cần phải được cấu hình riêng biệt mà là một cái gì đó chúng tôi không want.By sử dụng DHCP chúng ta không cần cấu hình các thiết lập mạng riêng biệt cho các máy công nhân, DHCP sẽ trao ra khu công nghiệp cho bạn. Vì vậy, bạn có thể sao chép máy ảo của bạn về văn phòng mà không cần lo lắng về việc thiết lập mỗi một trong những động (cải thiện khả năng mở rộng và làm giảm nhân viên hành chính).

Quá trình bạn nên nhằm mục đích để đạt được sẽ là để có được một máy vật lý mới, cài đặt VirtualBox, và sau đó triển khai khá nhiều hình ảnh ảo mà không có nhiều khác. Nó có thể là khôn ngoan để thiết lập tất cả các công nhân của bạn trên một subnet khác nhau để bạn có thể nhìn thấy bao nhiêu máy đang chạy. Bạn cũng sẽ cần phải thiết lập máy của bạn trên một hợp đồng thuê lâu dài hay không giới hạn cho thuê DHCP.

Làm thế nào để chạy Việc người lao động

Đây là một khu vực thú vị và có một số phương pháp hợp lệ để xử lý công việc người lao động. Ở đây tôi sẽ chỉ thảo luận về hai rõ ràng nhất:

  • Vĩnh viễn chạy kịch bản: Một kịch bản, có thể là một kịch bản, hoặc một kịch bản PHP được thực hiện một lần trên người lao động và chạy như một phần của một vòng lặp vô hạn. Tôi đã giảm giá phương pháp này là một trong những vụ tai nạn của kịch bản và có khả năng lao động của bạn sẽ ngừng chạy mà không có một số loại can thiệp.
  • Thực hiện kịch bản định kỳ dựa trên: Mỗi phút X cron daemon bắt đầu một cuộc gọi đến kịch bản của bạn để có được điều đi. Nếu không có kiểm tra một số điều này có thể dẫn đến nhiều bản sao nhiều nhân viên chạy kịch bản của bạn.

Quyết định của tôi là đi với cron khởi động một kịch bản mỗi minutes. 10 kịch bản của tôi thực hiện các nhiệm vụ sau đây:

  1. Có được một danh sách các tiến trình và grep 'php'. Nếu không tìm thấy sau đó tiếp tục.
  2. Gọi mã công việc của bạn, trong trường hợp này sẽ là một cái gì đó PHP
  3. Công nhân kịch bản hoàn thành chạy của nó
  4. Sẵn sàng để đi lại trên các cuộc gọi thích hợp tiếp theo

Kịch bản bash của tôi trông giống như sau:

  # / Bin / sh
 nếu ps ax | grep-v grep | grep php> / dev / null
 sau đó
     echo "công việc hiện đang được chế biến, xuất cảnh"
 khác
     echo "Công việc không chạy, bắt đầu ngay bây giờ"
     php yourJobProcessingScript.php
 fi 

Lưu ý: của tiếng vọng gần như hoàn toàn vô nghĩa, nhưng có thể giúp người tiếp theo đến cùng để thử và chỉnh sửa chúng.

Đó là kết luận các thiết lập của máy công nhân ảo, nhanh chóng, đơn giản và dễ dàng để sao chép cho mỗi mảnh của phần cứng mới được nhận. 'Thông minh' của hệ thống lưới điện thực sự không phải là hình tượng trong hệ điều hành, tất cả để làm với các mã được tạo ra công ăn việc làm quá trình, cấu hình việc làm, và đảm bảo rằng công việc chạy khi thích hợp (ví dụ như khi máy chủ nhàn rỗi ).

Thiết lập Windows Khởi công nhân

Nhiệm vụ đầu tiên là các lệnh cần thiết để chạy các máy ảo từ các cửa sổ dòng lệnh. Nếu bạn đã cài đặt VirtualBox trong vị trí mặc định và bạn đã đặt tên GridMachine nhân viên của bạn sau đó các lệnh cần thiết để tải lên nhân viên của bạn là:

  "C: \ Program Files \ CN \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Tuy nhiên để chạy các kịch bản trong một trạng thái 'không đầu', chúng ta cần phải sử dụng:

  "C: \ Program Files \ CN \ VirtualBox \ VBoxHeadless.exe" startvm GridMachine - vrdp = off 

Điều này sẽ bắt đầu các máy ảo mà không có giao diện và cho phép nó để tiết kiệm nhà nước một cách duyên dáng. Đối số thứ hai sẽ tắt RDP để nó không mâu thuẫn với các cửa sổ RDP, hoặc cung cấp cho bạn một thông điệp về lắng nghe trên cổng 3389. Tên máy ảo là trường hợp nhạy cảm!

Tiếp theo, chúng tôi sẽ cần phải thiết lập các cửa sổ để khởi động máy ảo công nhân của chúng tôi khi máy tính đã được nhàn rỗi. Để làm điều này (trên Windows XP), bạn sẽ cần phải đi Start -> All Programs -> Accessories -> System Tools -> Scheduled Tasks như sau:

dự kiến ​​nhiệm vụ

Tiếp theo nhấp vào "Add Scheduled Task, tiếp theo là trình duyệt để thêm một chương trình tùy chỉnh. Điều hướng đến kịch bản VBoxManage của bạn và kích OK. Lịch trình công việc của bạn cho bất kỳ tùy chọn (chúng tôi sẽ thay đổi điều này trong một phút) và tiếp tục. Sau khi bỏ qua màn hình kế tiếp, các cửa sổ sẽ hỏi bạn người mà bạn muốn chạy nhiệm vụ này, tôi muốn đề nghị hoặc là 'Administrator' hoặc tạo ra một người sử dụng đặc quyền mới. Hãy nhớ chúng tôi không muốn can thiệp vào các tài khoản nhân viên tiêu chuẩn trên máy tính tại bất kỳ điểm nào. Kích tiếp theo và kiểm tra hiển thị tùy chọn nâng cao cho nhiệm vụ này.

Để cuối của hộp văn bản chạy thêm chuỗi 'startvm GridMachine của chúng tôi và đảm bảo rằng chạy chỉ khi đăng nhập còn lại unticked. Truy cập vào lịch trình công việc tiếp theo và thay đổi lịch trình thả xuống tùy chọn 'nhàn rỗi', chọn số lượng thời gian bạn muốn máy tính để được nhàn rỗi trước khi chuyển tới tab tiếp theo.

Cuối cùng, bỏ chọn các tùy chọn trong đó nêu dừng nhiệm vụ nếu nó đã được chạy X số lượng thời gian, nhưng không đánh dấu vào tùy chọn để ngăn chặn các nhiệm vụ nếu máy không còn nhàn rỗi.

lịch trình

Đó là sau đó cho các cửa sổ thiết lập máy chủ!

Tóm tắt thông tin

Trong phần này chúng tôi đã thiết lập một máy ảo hoạt động như một công nhân, cũng như cách thức mà chúng ta gọi và thực hiện các kịch bản xử lý công việc của chúng tôi (cho bản thân mình một kịch bản PHP). Từ đây chúng ta nhìn vào làm thế nào để thiết lập bản sao của chúng ta về cửa sổ để bắt đầu các máy ảo trong chế độ không đầu khi máy tính trở nên nhàn rỗi, và tiết kiệm nước khi người dùng tiếp tục sử dụng máy. Hy vọng rằng vào thời điểm này bạn đang nhìn thấy cách đơn giản nó là để thiết lập một hệ thống như vậy và đang nóng lòng muốn có được một số thí nghiệm sẽ cho mình!

Tiếp theo thời gian

Trong phần 4, chúng tôi sẽ xem xét sử dụng các công cụ để đảm bảo rằng bạn đang chạy phiên bản mới nhất của các nguồn mã và dữ liệu để kết quả thu được là luôn luôn up-to-ngày với các thông tin kinh doanh mới nhất và logic.

Văn phòng lưới máy tính sử dụng môi trường ảo - Phần 2

, thứ Sáu ngày 04 tháng 12 năm 2009 11:23

Giới thiệu

Tôi làm việc trong một công ty mà chúng tôi chạy nhiều công việc hàng loạt chế biến hàng triệu bản ghi dữ liệu mỗi ngày và tôi đã suy nghĩ gần đây về tất cả các máy ngồi xung quanh mỗi ngày và không làm gì trong vài giờ. Nó sẽ không tốt nếu chúng ta có thể sử dụng những máy móc để tăng cường sức mạnh xử lý của hệ thống của chúng tôi? Trong tập hợp các bài viết này, tôi sẽ xem xét các lợi ích tiềm năng của việc sử dụng một văn phòng lưới điện bằng cách sử dụng môi trường ảo hóa.

Trong phần 1, tôi đã đưa ra một cái nhìn tổng quan của hệ thống và công nghệ sẽ được sử dụng cũng như thảo luận một số trong những lý do tiềm năng, tại sao bạn sẽ muốn tạo ra một mạng lưới văn phòng.

Công việc kiểm soát

Nếu bạn đang chạy công việc sau đó bạn sẽ cần một số cách để quản lý chúng. Hệ thống (trên máy chủ công việc của bạn) kiểm soát công việc của bạn cần được thực sự cũng nghĩ ra ngay cả trước khi cố gắng chạy một mạng lưới văn phòng. Vì vậy, trước hết, nhiệm vụ cho một hệ thống kiểm soát công việc là gì:

  • Đưa ra công việc theo yêu cầu của người lao động
  • Yêu cầu người lao động những gì loại của công việc để chạy
  • Theo dõi công việc
  • Đảm bảo rằng công việc chỉ chạy một lần
  • Cung cấp dữ liệu việc làm cho người lao động, hoặc ít nhất là nói với họ để có được nó

Hệ thống này cũng cần phải được mở rộng, một giải pháp mà làm việc cho một trường hợp duy nhất có thể được mở rộng để chạy một số loại công việc khi doanh nghiệp nhìn thấy giá trị trong một giải pháp lưới. Ví dụ, công việc có thể đạt được ưu tiên, nhiều hơn một loại hình làm việc có thể tồn tại (tức là một số cơ sở mã), cuối cùng bạn thậm chí có thể chạy một số máy công nhân khác nhau được tối ưu hóa cho từng loại công việc (mặc dù điều đó không di chuyển ra khỏi người lao động chung chung ' 'ý tưởng). Luôn luôn cố gắng để suy nghĩ về tương lai khi phát triển hệ thống, một tầm nhìn ngắn hạn có thể dẫn đến thất vọng dài hạn và tăng thời gian phát triển.

Công việc máy chủ

Chúng tôi sẽ cần một nơi nào đó để kiểm soát công việc của chúng tôi, điều này sẽ là hệ thống duy nhất trong mạng lưới của bạn có một bộ định vị tài nguyên cố định, là một địa chỉ IP, tên máy, URL (bằng cách sử dụng nội bộ DNS), ... Điều này là do người lao động cần phải biết nơi để tìm việc làm, công nhân cần phải tìm ra hệ thống kiểm soát công việc (không hệ thống điều khiển công việc tìm thấy những công nhân).

Các máy chủ bản thân công việc không thực sự có một nhiệm vụ phức tạp (trong một hệ thống cơ bản dù sao đi nữa), nó cần để lưu trữ một danh sách việc làm, bàn tay ra việc làm, nhận kết quả, và sau đó lưu trữ chúng để thu hồi sau. Làm thế nào các bộ phận này (chẳng hạn như 'tay ra công ăn việc làm ") được định nghĩa có thể là rất cơ bản. Sau đó, chúng tôi có thể mở rộng hệ thống để bao gồm một giao diện quản trị để thêm, chỉnh sửa, xóa, đình chỉ công việc nhưng điều này vượt ra ngoài tập thể dục này.

Có là không có lí do gì sau đó là máy chủ công việc của bạn không có thể là một máy ảo đang chạy trong máy chủ xử lý chính của bạn cung cấp nó không thoát nước quá nhiều tài nguyên từ nó. Tuy nhiên, các máy chủ công việc không cần sẵn sàng cao, nếu nó đi vào một buổi tối bạn sẽ mất cả một ngày cuối tuần chế biến, có khả năng chi phí cho bạn một vài tuần giá trị của thời gian xử lý (khi so sánh với máy chủ xử lý chính của bạn một mình) . Bạn có thể muốn xem xét việc đặt máy chủ công việc của bạn trên một môi trường cân bằng tải cho sẵn sàng cao.

Cơ bản cài đặt

Thiết lập cơ bản cho máy chủ công việc của chúng tôi sẽ bao gồm những gì tôi đang kêu gọi một trong các máy chủ khập khiễng của tôi (đó là Li nux, m ySql, P HP). Đang chạy trên công nhân Thea thực sự sẽ làm việc ra những công việc nó có thể chạy bằng cách tương tác với với cơ sở dữ liệu hệ thống điều khiển công việc. Sau đó chúng ta có thể tạo ra một dịch vụ web và bàn tay thực sự ra công ăn việc làm hơn là có người lao động làm các công việc khó khăn, bản thân, nhưng bây giờ chúng tôi sẽ tiếp tục sử dụng các nguyên tắc KISS (Hãy giữ nó đơn giản, Stupid).

Vì vậy, cho phép tạo ra ba bảng mySQL để đối phó với công việc. Đây sẽ là công việc `,` jobRecords `, và` jobResults `.

Việc bảng Ở đây tôi đang sử dụng SQL Buddy một chút thay thế tuyệt vời để phpMyAdmin chỉ vì nó dễ dàng hơn để cài đặt trên CentOS (đối với những người khác nhìn thấy: 10 Đại lựa chọn thay thế để phpMyAdmin )

Bảng này bao gồm 5 lĩnh vực đơn giản,

  • id: Độc đáo xác định các công việc
  • name: có thể là một tài liệu tham khảo khách hàng, hoặc bất kỳ số nào của định danh khác
  • Tình trạng: Bạn cần phải biết công việc, ví dụ như
    • 0: Không bắt đầu
    • 1: chọn
    • 2: Đã hoàn thành
  • started_by: Ai bắt đầu làm công việc? Điều này không hoàn toàn bắt buộc nhưng là một tốt đẹp để có. Tôi muốn đề nghị nhân viên theo dõi địa chỉ IP của họ trên mạng của bạn
  • started_at: Khi nào công nhân bắt đầu công việc? Bằng cách theo dõi các công việc không hoàn tất trong vòng X số lượng thời gian chúng ta biết chúng ta cần nhận công việc một lần nữa và bắt đầu chế biến bằng cách công nhân khác. Người lao động có thể ngăn chặn xử lý / đi offline cho bất kỳ số lý do mất điện, tai nạn, mất mạng.

Nó rất dễ dàng bảng này có thể được mở rộng với một vài trường bổ sung cho phép theo dõi số liệu thống kê, kết thúc cột một thời gian để xem bao lâu công việc, một truy cập để xem có bao nhiêu công nhân được các công việc (rõ ràng điều này cần phải có xu hướng 1), công việc ưu tiên, danh sách có thể đi và về. Trong kịch bản công việc phức tạp hơn, nó sẽ có thể xác định bao nhiêu bộ nhớ người lao động sẽ cần truy cập vào (và do đó chỉ sử dụng lao động thích hợp), hoặc thậm chí của người lao động sẽ được yêu cầu.

Cho phép thêm một số công việc ví dụ:

ví dụ công việc

Bảng tiếp theo lại là khá đơn giản để hiểu, đây là hồ sơ công việc của chúng tôi. Họ được liên kết với bảng công việc chính của một cột jobs_id `. Làm cho bảng này phụ thuộc rất nhiều vào dữ liệu mà bạn cần phải cung cấp cho công nhân của bạn, cho phép thực hiện một ví dụ rất đơn giản, nơi chúng tôi có bốn cột:

  • id: ID của các hồ sơ
  • tên: tên của Người
  • địa chỉ: địa chỉ của Người
  • jobs_id: ID công việc mà hồ sơ này được liên kết với

Bảng thứ ba và cuối cùng bao gồm một bảng kết quả, nó có nhiều giống như là bảng hồ sơ của chúng tôi, và với việc bổ sung một số cột có thể là một phần của bảng hồ sơ:

  • job_record_id: Liên kết kết quả các bảng công việc
  • Kết quả: dữ liệu kết quả

... Và đó là tất cả những gì bạn cần để kiểm soát công việc! (Mặc dù ở một mức độ rất cơ bản) Trong trường hợp của tôi tôi chỉ ra một bảng dữ liệu của tôi để xử lý được đặt, nhưng điều này có thể chỉ là một cách dễ dàng là một tập tin, các thông số để chạy mã mô phỏng, bạn đặt tên cho nó.

Lựa chọn một công việc

Như đã nêu trước đây, các công nhân sẽ làm quản lý công việc của chúng tôi cho chúng ta bây giờ, vì vậy tất cả chúng ta cần phải thực sự làm là tìm một công việc cần xử lý và có được thông tin. Làm thế nào chúng tôi sẽ làm điều này? Cũng chọn tiêu chí lựa chọn công việc của chúng tôi và tìm kiếm công việc, trong SQL tôi đã làm như sau:

  1. Đi bất kỳ công việc không được đánh dấu đầy đủ nhưng từ nhân viên của chúng tôi và đặt lại (thay thế ME__ __ với một định danh, đơn giản nhất sẽ là địa chỉ IP):
      CẬP NHẬT `công việc` SET `tình trạng` = 0 ở đâu `tình trạng` = 1 AND `started_by` = __ ME__; 
  2. Sử dụng các tiêu chí lựa chọn công việc của chúng tôi, chọn một công việc và cho biết hệ thống kiểm soát mà công nhân này là đối phó với nó:
      CẬP NHẬT `công việc` SET `tình trạng` = 1, `started_by` = __ ME__, `started_at` = NOW () WHERE `tình trạng` = 0 OR
     (`Tình trạng` = 1 VÀ `started_at`> DATE_SUB (NOW (), INTERVAL X Giờ)) ORDER BY `id` ASC; 

    Bởi việc làm lấy mà không trả lại kết quả trong X số lượng thời gian chúng tôi đảm bảo rằng tất cả các công việc được chạy trong trường hợp của một công nhân bị rơi hoặc đi AWOL.

  3. Tiếp theo lấy các chi tiết công việc tiếp theo là các hồ sơ tự:
      SELECT * FROM `công việc` WHERE `started_by` = __ ME__ LIMIT 1;
     Chọn * FROM `job_records NƠI` id `= __ JOBID__; 

Sau khi hoàn thành công việc, chúng tôi ghi chèn kết quả của chúng tôi và đánh dấu công việc là hoàn thành. Hãy nhớ là việc làm có thể tạm dừng / tiếp tục bất cứ lúc nào cho phép một số mạnh mẽ trong kịch bản của bạn. Nó có thể là công việc đình chỉ một nửa thông qua cập nhật hệ thống kiểm soát công việc, do đó, kiểm tra số lượng hồ sơ trong một công việc và số lượng các kết quả được lưu lại hệ thống kiểm soát công việc sẽ là một động thái khôn ngoan.

Ngoài ra, trong khi điều này chứng minh làm thế nào công việc có thể được lựa chọn và quản lý từ một khung truy vấn SQL bạn thực sự cần được trừu tượng hóa kiểm soát công việc của bạn rằng nếu bạn quyết định chuyển sang sử dụng một dịch vụ web, tập tin dựa trên hệ thống, XML , hoặc bất kỳ khác số hệ thống, nó sẽ không ảnh hưởng đến các mã trên nó.

Công việc cấu hình

Các khía cạnh tiếp theo để xem xét là việc làm kích thước và cấu hình. Bằng cách chơi với cấu hình việc làm, chúng ta có thể tấn công một sự cân bằng tuyệt vời giữa tốc độ, quá trình sao chép, và độ tin cậy. Đi một vài kịch bản OFA:

  1. Việc làm mất 1 ngày để chạy: Điều này có nghĩa rằng các nhân viên của bạn cần 15 ngày, kể từ ngày xử lý từng công việc (nhớ 10% năng lượng cho 2/3rds trong thời gian). Điều này rõ ràng không phải là một cấu hình khôn ngoan, quy mô công việc của bạn là cách quá lớn! Nó sẽ mất ít nhất là gấp đôi thời gian để có được một công việc xử lý các nhân viên ban đầu nên đi AWOL (thời gian nhận rằng nó đã không trở về một kết quả cộng với thời gian tái chế). Trong một lý tưởng, bạn muốn có ít nhất một công việc dễ dàng xóa vào cuối mỗi khoảng thời gian nhàn rỗi dài, như vậy bạn tiếp tục công việc đánh dấu trên và trường hợp xấu nhất một công việc sẽ mất hai ngày để xử lý đầu tiên phải đi mất tích.
  2. Việc làm mất 1 phút để chạy: Điều này có nghĩa rằng các nhân viên của bạn mất khoảng 15 phút để chạy từng công việc. Trong khi điều này ban đầu có thể có vẻ lý tưởng, bạn có được chế biến công việc bổ sung trong thời gian ăn trưa, nghỉ uống cà phê, các cuộc họp, kịch bản này đặt thêm căng thẳng trên các lĩnh vực khác của hệ thống của bạn và giới thiệu những vấn đề riêng của mình. Ví dụ, trước hết là thiết lập / chế biến tỷ lệ thời gian của bạn là sẽ đi xuống, do đó mất hiệu quả hệ thống. Mạng của bạn là có được công việc liên tục truyền tải thông tin cho các nhân viên khác nhau bực bội công nhân là đồng ngày của họ sang ngày làm việc. Bạn cũng sẽ căng thẳng hơn trên máy chủ xử lý công việc của bạn vì nó có món ăn ra rất nhiều và rất nhiều phần nhỏ công việc một cách thường xuyên. Cuối cùng, trong tình huống này nếu máy chủ công việc của bạn đi xuống bạn sẽ tạo ra một đăng nhập trở lại rất lớn của các công việc dở dang trong khi công việc lớn hơn có thể tiếp tục chế biến blissfully không biết rằng các máy chủ công việc đã trải qua khó khăn.

Trong thực tế sẽ có cấu hình không có một lý tưởng cho các thiết lập mạng lưới của bạn, phụ thuộc nhiều vào các nguồn lực sẵn có, loại công việc, thời gian yêu cầu thay đổi hoàn toàn công việc, năng lực mạng lưới, và như vậy. Tuy nhiên, một số hướng dẫn sẽ là:

  • Việc làm kích thước mỗi công nhân có thể nhận được thông qua ít nhất 3-4 công việc trong một khoảng thời gian 15 giờ (khoảng thời gian dài nhất có khả năng nhàn rỗi)
  • Chơi với quy mô công việc để thời gian thiết lập trở nên khá đáng kể so với thời gian xử lý (mang trong tâm trí các điểm trên).
  • Nếu một công việc không hoàn thành trong thời gian gấp đôi số tiền (có thể ít hơn), bạn mong đợi nó để hoàn thành nó giả định đào ngũ của nó đi và bắt đầu chế biến với công nhân khác. Điều này có nghĩa là bạn có thể phải chờ đến ba lần chiều dài bình thường của một công việc cho nó để hoàn thành (có thể lâu hơn nếu công việc tiếp theo không thành công). Bạn có thể muốn làm giảm thời gian này, nhưng phải cẩn thận không để giảm quá nhiều như bạn có thể bắt đầu sao chép các nhiệm vụ xử lý một cách thường xuyên.
  • Công ăn việc làm nên được độc lập của yêu cầu bên ngoài càng nhiều càng tốt. Các máy chủ công việc, ví dụ, chỉ nên được liên lạc ở đầu và cuối của mỗi công việc.
  • Không bão hòa mạng của bạn, điều này sẽ có hai tác động tiêu cực, nhân viên ban ngày của bạn sẽ tìm thấy bằng cách sử dụng các mạng bực bội và các vấn đề có thể được kinh nghiệm với các kết nối thời gian một vấn đề sẽ chỉ trở nên tồi tệ hơn khi bạn quy mô mạng lưới của bạn.
  • Đảm bảo việc làm có thể chạy trên các công nhân của bạn. Nếu công việc trở thành công việc quá bộ nhớ không gian đĩa thâm canh, thâm canh sẽ bắt đầu hủy bỏ và điều duy nhất bạn sẽ nhận thấy sự sụt giảm số lượng công việc xử lý với không có lý do thực sự tại sao.

Trình Kết quả của việc

Khi trình kết quả của một công việc quan trọng là phải kiểm tra rằng các kết quả đã không được cung cấp bởi công nhân khác, đặc biệt là nếu người lao động hiện nay đã không hoạt động một thời gian.

Khi kết quả được cung cấp đảm bảo rằng số lượng kết quả phù hợp với số lượng hồ sơ trong công việc.

Như đã nêu trước đây, và có thể không được trên nhấn mạnh, xây dựng khả năng chịu lỗi vào hồi kết quả công việc và trình. Các công nhân có thể (và rất có thể sẽ) đi vào chế độ đình chỉ bất tiện ở lần và điều này cần được phục vụ các thực cho. Cũng một lần nữa tóm tắt kết quả của bạn trình sẽ giúp phục vụ cho các thay đổi trong tương lai hệ thống kiểm soát công việc của bạn dễ dàng hơn nhiều để đối phó với.

Tóm tắt thông tin

Trong section này, chúng tôi đã xem xét những gì một máy chủ điều khiển công việc cần phải làm và làm thế nào để có được một hệ thống rất cơ bản thiết lập. Chúng tôi thảo luận làm thế nào để lấy một công việc từ hệ thống điều khiển và làm thế nào tốt nhất để cấu hình việc làm để có được nhất của chúng ta về hệ thống mạng lưới văn phòng của bạn. Để kết thúc, một đoạn văn hoặc trình kết quả lại cho máy chủ điều khiển công việc đã được trình bày.

  • Một máy chủ điều khiển công việc quản lý công việc và đảm bảo rằng tất cả các đơn vị công việc được hoàn thành
  • Tóm tắt công việc của bạn chọn / kết quả trình, chúng ta có thể thay đổi công nghệ của máy chủ điều khiển mà không có nhiều vấn đề
  • Cấu hình công việc của bạn để đảm bảo rằng họ đang chạy một cách nhanh chóng và hiệu quả mà không gây áp lực quá nhiều vào cơ sở hạ tầng mạng của bạn, và không có nhân bản các nhiệm vụ xử lý một cách thường xuyên.
  • Đảm bảo rằng bạn xây dựng khả năng chịu lỗi và checking lỗi vào thói quen của bạn, công nhân có thể đình chỉ và tiếp tục và hầu hết các bất tiện của thời đại. Nhớ kiểm tra nếu kết quả đã được đệ trình bởi các công nhân khác.

Tiếp theo thời gian

Trong phần 3 chúng ta sẽ tạo máy chế biến ảo của chúng tôi và thiết lập máy cửa sổ của chúng tôi để trở thành công nhân trong thời gian nghỉ.

Zend Framework: Nguyên tắc cơ bản - Đánh giá

, Thứ Bảy 28 Tháng 11 2009 22:42

Người sử dụng lao động của tôi gần đây đã trả tiền cho một nhóm các nhà phát triển chúng tôi để có những Zend Framework: khóa học cơ bản , ở đây tôi sẽ tóm tắt những suy nghĩ và ý kiến của tôi về các khóa học cho những người khác. Đối với những người tìm kiếm để tiết kiệm thời gian, đây là bản tóm tắt của tôi:

Đối với các nhà phát triển đã không có thời gian để nhìn vào Zend Framework khóa học này (Zend Framework: Nguyên tắc cơ bản) cung cấp một bức tranh tổng thể của khuôn khổ giới thiệu bạn đến các khu vực trọng điểm và đưa ra đủ thông tin để tiếp tục. Đối với những người đã dành thời gian nhìn vào khuôn khổ và theo một hoặc hai hướng dẫn khóa học này không cung cấp nhiều hơn thế nữa.

Bối cảnh

Tôi đã được một PHP phát triển trong khoảng 5-6 năm, và đã bắt đầu làm việc với Zend Framework trên cơ sở thành phần trong 6 tháng qua. Tôi đã phát triển và / hoặc là một nhà phát triển trên một vài nhỏ Zend Framework MVC sites. tôi sẽ trung thực, tôi đã không có một lượng lớn các tiếp xúc với các khuôn khổ khác từ một điểm mã hóa nhưng đã dành một số giờ nghiên cứu các trang web dự án và đánh giá them. khuôn khổ và cộng đồng xung quanh Zend Framework nó là khá thú vị và hình như vẫn có khả năng rất lớn trong nơi của nó đi.

Giới thiệu về các khóa học

Khóa học được cung cấp trên 9 hai giờ WebEx phiên (với một break 10 phút ở giữa). Thời gian là chi tiêu sẽ thông qua một tập hợp các slide được cung cấp bởi Zend với cuộc thảo luận bất cứ lúc nào. Bạn có thể sử dụng một micro để nói chuyện với người hướng dẫn, nhưng phải trung thực tôi không thấy bất cứ ai sử dụng bất cứ điều gì nhiều hơn so với các cửa sổ chat. Ngoài ra một máy VMWare Ubuntu được cung cấp có mã ví dụ, dự án thiết lập một phiên bản dùng thử của Zend Studio. Các khóa học nói nhà lãnh đạo tham dự hoặc qua một giải pháp tích hợp VoIP, hoặc bạn có thể quay số bằng cách sử dụng một trong quay số trên toàn thế giới trong số.

Trong khóa học, vật liệu bao gồm một tổng quan về các Framework và mô hình MVC trước khi đi vào một ứng dụng mẫu lưu bút. Các cuộc thảo luận đã chứng minh bootstrapping, Zend_Application, Db Bàn, truy cập cơ sở dữ liệu, hình thức, Filtering, ACL, Members, vv, vv Về cơ bản bao gồm tất cả các chủ đề bạn muốn yêu cầu để có được một trang web cơ bản lên một thời gian chạy tất cả các bạn những công cụ để đi và được nâng cao hơn trong khuôn khổ (mặc dù điều này đã làm số tiền 'Xem trang web nhiều thời gian).

Thời gian được đưa ra để mã lên một số ví dụ, và phát triển của lưu bút và ứng dụng đơn giản "wiki". Cá nhân tôi cảm thấy rằng việc cung cấp mã hoặc từng ứng dụng và sau đó yêu cầu chúng tôi phát triển bản chất là một bản sao bên cạnh đã không thực sự cung cấp một kinh nghiệm học tập tốt. Tôi đã có thể ưa thích để phát triển một ứng dụng tương tự, nhưng không giống nhau. ứng dụng ví dụ với lợi ích của việc có một hướng dẫn để tham khảo. Ngoài ra xây dựng các ứng dụng từ đầu với người biểu tình sẽ có thể dẫn đến câu hỏi về lý do tại saolàm thế nào, do đó đưa ra một sự hiểu biết tốt hơn về khuôn khổ, sau khi tất cả các bạn có thể tìm kiếm các chi tiết cụ thể sau khóa học.

Các bài giảng cuối cùng bao gồm làm việc trên các ứng dụng wiki với sự giúp đỡ / hướng dẫn từ người hướng dẫn. Sau khi các thông tin phản hồi của khóa học đã được chụp, nó đã được nhấn mạnh nhiều lần thông qua các khóa học Zend có phản hồi rất nghiêm túc, trên thực tế dường như phiên bản của chúng tôi tất nhiên là khá mới. Một số các nhà phát triển khác trong công ty sẽ được tham gia khóa học sớm, vì vậy nó sẽ được thú vị để xem nếu điều này đã xảy ra.

Phong cách khóa học chính thức, cho phép thông tin phản hồi và hợp tác giữa người tham dự và hướng dẫn. Các nhà lãnh đạo khóa học thân thiện, tiếp cận (địa chỉ email đã được chia sẻ cho các câu hỏi), và trong khi thuyết trình của mình từ các trang trình bày là một chút run rẩy coi như hoàn toàn có thẩm quyền trong khuôn khổ. Ông rõ ràng là một người sử dụng khuôn khổ một cách thường xuyên hơn là những người được dạy để dạy các khóa học, tôi thích kinh nghiệm thực thế giới trong đó tôn trọng.

Nhìn chung Feeling

Trong một số cách tôi tìm thấy quá trình một sự lãng phí thời gian, những người khác nó là rất tiện dụng. Hy vọng rằng tôi sẽ nhận được lý do của tôi trên toàn rõ ràng, và có thể cung cấp một số thực phẩm cho tư tưởng hoặc ý kiến ​​phản hồi hữu ích (biết điều này là không!).

Đối với bản thân mình khóa học này nhằm mục đích ở mức quá thấp. Đã thông qua hướng dẫn QuickStart, đọc Rob Allen của Zend Framework trong hành động, và làm việc với khuôn khổ một chút, tôi đã không thực sự nhận được bất cứ điều gì quá nhiều. Tôi sẽ thích quá trình từ khi kết thúc của QuickStart và phát triển các kỹ năng bổ sung.

Điều đó nói rằng, tên khóa học không ghi rõ "Zend Framework: Nguyên tắc cơ bản" và trong khía cạnh đó, khóa học đạt được những gì nó đặt ra để làm. Các thành viên khác của nhóm phát triển đã không dành thời gian nhìn vào khuôn khổ kết thúc mỗi phiên với sự nhiệt tình và yêu cầu các câu hỏi được thực sự tốt đẹp để xem.

Tất cả đã không bị mất, nó là tốt để dành nhiều thời gian xác nhận các chi tiết cơ bản của khuôn khổ và có thể đưa ra một vài câu hỏi trong lĩnh vực mà tôi không phải 100%. Đây cũng là thời gian mà tôi có ngồi xuống mỗi ngày và suy nghĩ về mã hóa bằng cách sử dụng các dự án khuôn khổ và tương lai, một cái gì đó tôi sẽ không thể làm khác (bạn có thể tưởng tượng công ty của bạn đồng ý với điều đó? :)). Cuối cùng nhưng không ít nhất bạn cũng có được một giấy chứng nhận tốt đẹp từ Zend để nói rằng bạn tham dự khóa học (mặc dù bằng email).

Zend Khung chứng nhận

Đây là một câu hỏi mà đến tâm trí trong suốt khóa học, nó sẽ chuẩn bị cho tôi xác nhận? , Nhanh chóng dễ dàng là một Không vang dội. Hướng dẫn khóa học là khá rõ ràng rằng với những lời khuyên bổ sung xác nhận bạn thực sự nên được sử dụng khuôn khổ một ngày để cơ sở ngày và cảm thấy rất thoải mái và tự tin trong việc sử dụng và phương pháp của nó.

Tóm tắt thông tin

Với tất cả những gì tôi đã viết ở trên, tôi sẽ tóm tắt tất cả mọi thứ trong hai điểm viên đạn dễ dàng:

  • Zend Framework: Khóa học này không chính xác những gì bạn mong đợi, nó mang lại cho bạn một giới thiệu tốt đẹp để các khuôn khổ và nền tảng tốt về những điều cơ bản mà từ đó bạn có thể xây dựng. Khóa học này dường như tạo ra lợi ích và sự nhiệt tình cho các khuôn khổ giữa các nhà phát triển.
  • Được sử dụng Zend Framework: Trong khi nó đã được tốt đẹp để vực dậy một số điều cơ bản rất, tôi cảm thấy thời gian, nỗ lực, và các quỹ để có những khóa học có thể được tốt hơn chi tiêu ở nơi khác. Nó sẽ được tốt đẹp see Zend tạo ra một khóa học cấp cao hơn mới có các nhà phát triển để cấp độ tiếp theo. Ít nhất là tiêu chuẩn chứng nhận và hơn thế nữa Đối với tôi sẽ đăng ký ngay lập tức.

Vương quốc Anh Tên thư mục và ứng dụng Facebook

, Thứ Sáu 10 tháng 4, 2009 09:33 am

Một trong những điều thú vị tôi đã được tham gia vào trong khi làm việc cho Tracesmart là tên thư mục . Về cơ bản, chúng tôi lấy cơ sở dữ liệu thông tin khổng lồ của chúng tôi và lôi ra một đống lớn của số liệu thống kê về tên gọi khác nhau.

Quá trình này là tất cả một nỗ lực lớn SEO để thu hút lưu lượng truy cập vào trang web, nhưng nó cũng cung cấp một số thông tin thú vị và số liệu thống kê tên.

Dưới đây là một ví dụ cho tên Lloyd Watkin , hoặc tôi cho rằng đúng hơn Steven Watkin . Hãy dành một phút để tìm kiếm tên của bạn trên các trang web Tracesmart, có thể là thú vị ;)

Chúng tôi cũng đã có tên thống kê dữ liệu trên thư mục tên trang mà cho bạn biết những gì tên được tìm kiếm và làm thế nào gần đây. Khá thú vị để xem những người nổi tiếng tên bay lên các số liệu thống kê khi chúng xuất hiện trong các tin tức của nó. Một ví dụ gần đây là của Liam Neeson vợ chết vì một tai nạn trượt tuyết gần đây, mặc dù rõ ràng là không hoàn toàn đúng chính tả (do đó rất lớn số lượng lượt truy cập vào tên này) - Liam Nilson .

Facebook ứng dụng

Một khi thư mục tên được tạo ra, chúng tôi thiết lập về việc tạo ra một ứng dụng facebook mà chúng duely có tên là ' My Name '. Ứng dụng facebook là một phần mở rộng của tên thư mục và cung cấp một số thống kê bổ sung. Để thêm các thư mục tên tài khoản facebook của bạn, xin vui lòng truy cập:

http://apps.facebook.com/my-name/













Panorama Theme theo Themocracy

4 khách truy cập trực tuyến tại
3 khách, 1 bots, 0 thành viên
Max khách truy cập hôm nay: 8 lúc 02:26 am UTC
Tháng này: 18 2012/07/05 04:35 pm UTC
Năm nay: 69 27-02-2012 09:56 am UTC
Tất cả thời gian: 130 28-03-2011 10:40 pm UTC