Google App Engine วิธีที่ดีที่สุดในกำหนดเวลาการเรียกใช้โค้ด [ปิด]

ปัญหา: ผู้ใช้บางรายสามารถสร้างเอกสาร และเลือกวันที่และเวลาในอนาคต เพื่อดำเนินการโค้ดบางส่วนในเอกสารนั้น ผู้ใช้ยังสามารถยกเลิกกิจกรรมที่กำหนดเวลาไว้นั้นได้ ฉันกำลังมองหาการใช้งานที่ดีที่สุดใน GAE ฉันกำลังคิดถึงการใช้งานที่เป็นไปได้สองประการ:

-A push Task สำหรับเอกสารใดๆ โดยตั้งค่าพารามิเตอร์ eta ฉันสามารถบันทึกผลลัพธ์ของ Taskqueue.add(..) ลงในเอกสารได้ ในกรณีที่ผู้ใช้ต้องการลบงานก่อนที่จะดำเนินการ ฉันไม่รู้ว่าฉันสามารถเริ่มงานได้เป็นจำนวนสูงสุดหรือไม่ และจำนวนวันสูงสุดสำหรับเวลาที่กำหนด (30) อาจเป็นปัญหาได้

- ฉันสามารถบันทึกวันที่และเวลาของ DataStore และคีย์ของเอกสารได้ และใช้ cron เพื่อตรวจสอบทุกๆ 10 นาทีว่ามีรายการที่ต้องดำเนินการหรือไม่ ฉันกลัวว่าวิธีการนี้อาจมีราคาแพง ฉันถูกไหม?


person chairam    schedule 17.12.2014    source แหล่งที่มา
comment
เพื่อให้ชัดเจนยิ่งขึ้น: บนแพลตฟอร์มเดียวกัน ภาษาเดียวกัน กรอบงานเดียวกัน ทางเลือก 2 ทาง คำถามคือ: แนวทางแรก: เป็นไปตามข้อกำหนดทางเทคนิคหรือไม่ วิธีที่สองคือมันแพง (ทุกคนรู้ดีว่ามันยากจริงๆ ที่จะคำนวณต้นทุนใน App Engine)   -  person chairam    schedule 18.12.2014


คำตอบ (1)


เนื่องจากผู้ใช้ของคุณสามารถกำหนดเวลากิจกรรมและยกเลิกได้ ฉันขอแนะนำให้บันทึกคำขอที่กำหนดเวลาไว้ไปยังที่เก็บข้อมูล และตรวจสอบงาน cron ว่ามีสิ่งใดจัดกำหนดการไว้ในขณะนั้นหรือไม่

เพื่อลดจำนวนครั้งที่งานรัน คุณสามารถเปลี่ยนความแม่นยำของวันที่/เวลาที่ผู้ใช้สามารถเลือกสำหรับงานได้ (เช่น เพิ่มครั้งละ 15 นาที หรือรายชั่วโมง) ตราบใดที่คุณสร้างเอนทิตีคำขอตามกำหนดเวลาอย่างถูกต้อง ก็ไม่น่าจะกระทบต่อพื้นที่เก็บข้อมูลราคาแพง เพื่อลดการเข้าถึงพื้นที่เก็บข้อมูล คุณสามารถดึงข้อมูลเหตุการณ์ที่กำหนดเวลาไว้ที่กำลังจะเกิดขึ้นในแบบสอบถามเดียวและใส่ไว้ใน Memcache ตราบใดที่คุณจัดการแคชนั้นเมื่อผู้ใช้แก้ไขแคช

person Jeff Deskins    schedule 17.12.2014
comment
ขอบคุณสำหรับคำตอบ. เมื่อฉันเขียนว่า 'แพง' ฉันกำลังคิดถึงเวลาของเครื่องเสมือนมากกว่าการเข้าถึงที่เก็บข้อมูล - person chairam; 18.12.2014