Một số cách để xử lý giới hạn của Google Script
TIL
735
Google App Script
2
google drive
3
White

Phùng Văn Tú viết ngày 17/10/2019

Một cách xử lý với thời gian giới hạn khi chạy Google Script

1. Google Script là clgt?

Google Drive vốn khá quen thuộc, có thể sử dụng như một Remote Folder.
Dù vậy thì nó vẫn có một số hạn chế, chứ không phải hoàn toàn như Folder trên máy tính được.

Thêm 1 điểm nữa, UI thì vẫn là UI thôi.
Muốn thực hiện thao tác với số lượng lớn thì không thể ngồi bấm từng file, từng Folder được.
Cho dù đó là thao tác đơn giản nhất ví dụ như set quyền, copy, duyệt file. folder...
Và Google cung cấp giao diện lập trình được để thao tác với những tác vụ kiểu này thông qua Google Script.

2. Các giới hạn về thời gian chạy

  • Ref link: https://developers.google.com/apps-script/guides/services/quotas
  • Dù cung cấp giao diện lập trình đầy đủ bằng JS, tài liệu tốt.
  • Nhưng nó có nhiều giới hạn về thời gian chạy 1 tác vụ, lượng access trong 1 ngày.
  • etc.
  • Nhưng giới hạn này khiến chương trình có thể bị dừng ở bất cứ điểm nào
  • Và bản thân chương trình không có cách nào biết được, dẫn đến chúng ta phải vào chạy lại chương trình đó.

3. Google cung cấp cách để vượt qua các giới hạn này.

  • Một số loại Trigger để tự động chạy script theo một số event.
  • Hàm getContinuationToken cho cả FolderListFileList
  • Cơ chế Lock để tránh tranh cấp xử lý chung: LockService
  • Một lưu lưu trũ trạng giá trị được giữ lại ngay cả sau khi Script bị tắt PropertiesService

4. Use-case:

  • Problem: Duyệt thư mục có số lượng sub-folder lớn.
  • Solution:
    • Cho phép load Folder bằng 2 cách : từ GID và ContinuationToken
    • Ghi lại ContinuationToken ngay sau khi xử lý xong vào PropertiesService
    • Thiết lập Trigger cho phép chạy tự động, giả sử dùng TimeEvent
    • Sử dụng LockService để đảm bảo 1 instance được chạy.

doime 17-10-2019

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Phùng Văn Tú

14 bài viết.
97 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
31 8
Chúng ta thường nghe nhiều đến Unicode, UTF8, UTF16, hay ShiftJS. Trong bài này chỉ xin làm rõ những khái niệm này để khi gặp phải vấn đề về Chars...
Phùng Văn Tú viết hơn 4 năm trước
31 8
White
31 6
4 thành phần của Embedded Linux Ta biết rằng Linux chạy ở khắp nơi từ siêu máy tính, máy chủ, máy để bàn (máy xách tay), điện thoại (android)...ch...
Phùng Văn Tú viết hơn 2 năm trước
31 6
White
24 5
Gần đây tôi có dịp đụng vào CMake, nên có tìm hiểu một chút về nó. Hy vọng có ích cho anh em. Nó cung cấp tính năng sinh ra Makefile một cách hiệu...
Phùng Văn Tú viết 4 năm trước
24 5
Bài viết liên quan
White
229 62
(Ảnh) Việt nam như các anh em cũng biết là đất nước con rồng cháu tiên với nghề làm web truyền thống chỉ xoay quanh web nhạc, web phim, web tin tứ...
quocnguyen viết gần 3 năm trước
229 62
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
14 bài viết.
97 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!